diff --git a/_config.yml b/_config.yml
index e5e0f95..3c4126f 100644
--- a/_config.yml
+++ b/_config.yml
@@ -3,12 +3,12 @@
 title: [Jakarta RESTful Web Services]
 description: [Jakarta RESTful Web Services provides a specification document, TCK and foundational API to develop web services following the Representational State Transfer (REST) architectural pattern.]
 
-latestVersion: 2.1.6
+latestVersion: 3.0.0
 
 links:
   source: https://github.com/eclipse-ee4j/jaxrs-api
   javadocs: https://eclipse-ee4j.github.io/jaxrs-api/apidocs
-  docs: https://jakarta.ee/specifications/restful-ws/2.1/restful-ws-spec-2.1.html
+  docs: https://jakarta.ee/specifications/restful-ws/3.0/jakarta-restful-ws-spec-3.0.html
   download: https://github.com/eclipse-ee4j/jaxrs-api/releases
   mailinglist: https://accounts.eclipse.org/mailing-list/jaxrs-dev
 
diff --git a/apidocs/3.0.0/META-INF/MANIFEST.MF b/apidocs/3.0.0/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4b77011
--- /dev/null
+++ b/apidocs/3.0.0/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Created-By: Apache Maven 3.6.3
+Built-By: jenkins
+Build-Jdk: 11.0.2
+
diff --git a/apidocs/3.0.0/allclasses-index.html b/apidocs/3.0.0/allclasses-index.html
new file mode 100644
index 0000000..51030b5
--- /dev/null
+++ b/apidocs/3.0.0/allclasses-index.html
@@ -0,0 +1,1005 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>All Classes (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Classes (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":2,"i1":2,"i2":32,"i3":1,"i4":1,"i5":8,"i6":32,"i7":2,"i8":1,"i9":2,"i10":8,"i11":1,"i12":1,"i13":1,"i14":1,"i15":1,"i16":1,"i17":1,"i18":1,"i19":1,"i20":32,"i21":32,"i22":1,"i23":1,"i24":1,"i25":1,"i26":32,"i27":1,"i28":2,"i29":32,"i30":32,"i31":32,"i32":1,"i33":32,"i34":2,"i35":2,"i36":1,"i37":1,"i38":1,"i39":8,"i40":2,"i41":32,"i42":2,"i43":2,"i44":32,"i45":32,"i46":32,"i47":1,"i48":32,"i49":1,"i50":1,"i51":8,"i52":1,"i53":1,"i54":1,"i55":2,"i56":1,"i57":2,"i58":2,"i59":32,"i60":2,"i61":1,"i62":1,"i63":2,"i64":1,"i65":32,"i66":2,"i67":8,"i68":8,"i69":8,"i70":8,"i71":8,"i72":8,"i73":32,"i74":1,"i75":1,"i76":1,"i77":32,"i78":1,"i79":32,"i80":32,"i81":32,"i82":1,"i83":32,"i84":32,"i85":2,"i86":8,"i87":32,"i88":32,"i89":1,"i90":32,"i91":32,"i92":1,"i93":1,"i94":8,"i95":1,"i96":1,"i97":1,"i98":2,"i99":2,"i100":4,"i101":4,"i102":1,"i103":8,"i104":2,"i105":1,"i106":4,"i107":1,"i108":1,"i109":1,"i110":8,"i111":8,"i112":1,"i113":1,"i114":1,"i115":1,"i116":1,"i117":2,"i118":1,"i119":32,"i120":1,"i121":1,"i122":2,"i123":8,"i124":1,"i125":2,"i126":2,"i127":8,"i128":1,"i129":1,"i130":1};
+var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
+</div>
+<div class="allClassesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Enum Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Annotation Types Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a>&lt;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Abstract skeleton implementation of a <a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</th>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the components of a JAX-RS application and supplies additional meta-data.</div>
+</th>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ApplicationPath.html" title="annotation in jakarta.ws.rs">ApplicationPath</a></td>
+<th class="colLast" scope="row">
+<div class="block">Identifies the application path that serves as the base URI for all resource URIs provided by
+ <a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</div>
+</th>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable JAX-RS asynchronous response that provides means for asynchronous server side response processing.</div>
+</th>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a <a href="jakarta/ws/rs/core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</th>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/BeanParam.html" title="annotation in jakarta.ws.rs">BeanParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.</div>
+</th>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</th>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></td>
+<th class="colLast" scope="row">
+<div class="block">
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.</div>
+</th>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Main entry point to the client API used to bootstrap <a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+</th>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+</th>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client request filter context.</div>
+</th>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client">ClientRequestFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by client request filters.</div>
+</th>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client response filter context.</div>
+</th>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ClientResponseFilter.html" title="interface in jakarta.ws.rs.client">ClientResponseFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by client response filters.</div>
+</th>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/CompletionCallback.html" title="interface in jakarta.ws.rs.container">CompletionCallback</a></td>
+<th class="colLast" scope="row">
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</th>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</th>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="jakarta/ws/rs/core/Configurable.html" title="type parameter in Configurable">C</a> extends <a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</th>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></td>
+<th class="colLast" scope="row">
+<div class="block">A configuration state associated with a <a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context.</div>
+</th>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ConnectionCallback.html" title="interface in jakarta.ws.rs.container">ConnectionCallback</a></td>
+<th class="colLast" scope="row">
+<div class="block">Asynchronous request processing lifecycle callback that receives connection related <a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>asynchronous
+ response</code></a> lifecycle events.</div>
+</th>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ConstrainedTo.html" title="annotation in jakarta.ws.rs">ConstrainedTo</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates the run-time context in which an annotated JAX-RS provider is applicable.</div>
+</th>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/Consumes.html" title="annotation in jakarta.ws.rs">Consumes</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the media types that the methods of a resource class or <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</th>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Container request filter context.</div>
+</th>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container">ContainerRequestFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by container request filters.</div>
+</th>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Container response filter context.</div>
+</th>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container">ContainerResponseFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by container response filters.</div>
+</th>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Context.html" title="annotation in jakarta.ws.rs.core">Context</a></td>
+<th class="colLast" scope="row">
+<div class="block">This annotation is used to inject information into a class field, bean property or method parameter.</div>
+</th>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;<a href="jakarta/ws/rs/ext/ContextResolver.html" title="type parameter in ContextResolver">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supplies context information to resource classes and other providers.</div>
+</th>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</th>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs">CookieParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</th>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs">DefaultValue</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the default value of request meta-data that is bound using one of the following annotations:
+ <a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>,
+ <a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs"><code>CookieParam</code></a>, <a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>, or <a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs"><code>HeaderParam</code></a>.</div>
+</th>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/DELETE.html" title="annotation in jakarta.ws.rs">DELETE</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</th>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container">DynamicFeature</a></td>
+<th class="colLast" scope="row">
+<div class="block">A JAX-RS meta-provider for dynamic registration of <i>post-matching</i> providers during a JAX-RS application setup
+ at deployment time.</div>
+</th>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/Encoded.html" title="annotation in jakarta.ws.rs">Encoded</a></td>
+<th class="colLast" scope="row">
+<div class="block">Disables automatic decoding of parameter values bound using <a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>
+ or <a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>.</div>
+</th>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="jakarta/ws/rs/client/Entity.html" title="type parameter in Entity">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</th>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</th>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a>&lt;<a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</th>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></td>
+<th class="colLast" scope="row">
+<div class="block">A feature extension contract.</div>
+</th>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">A configurable context passed to <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</th>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="jakarta/ws/rs/core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+</th>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+</th>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs">FormParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter.</div>
+</th>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a>&lt;<a href="jakarta/ws/rs/core/GenericEntity.html" title="type parameter in GenericEntity">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</th>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;<a href="jakarta/ws/rs/core/GenericType.html" title="type parameter in GenericType">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</th>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/GET.html" title="annotation in jakarta.ws.rs">GET</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</th>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/HEAD.html" title="annotation in jakarta.ws.rs">HEAD</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</th>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs">HeaderParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</th>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</th>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></td>
+<th class="colLast" scope="row">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</th>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Inbound Server-sent event.</div>
+</th>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context shared by message body interceptors that can be used to wrap calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating an <a href="jakarta/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+</th>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></td>
+<th class="colLast" scope="row">
+<div class="block">A client request invocation.</div>
+</th>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A client request invocation builder.</div>
+</th>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="jakarta/ws/rs/client/InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Callback that can be implemented to receive the asynchronous processing events from the invocation processing.</div>
+</th>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></td>
+<th class="colLast" scope="row">
+<div class="block">
+ Class representing hypermedia links.</div>
+</th>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Builder class for hypermedia links.</div>
+</th>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An implementation of JAXB <code>XmlAdapter</code> that maps the JAX-RS
+ <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> type to a value that can be marshalled and unmarshalled by JAXB.</div>
+</th>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></td>
+<th class="colLast" scope="row">
+<div class="block">Value type for <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</th>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs">MatrixParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</th>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for a media type.</div>
+</th>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;<a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supports the conversion of a stream to a Java type.</div>
+</th>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a stream.</div>
+</th>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a>&lt;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A hash table based implementation of <a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</th>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A map of key-values pairs.</div>
+</th>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NameBinding.html" title="annotation in jakarta.ws.rs">NameBinding</a></td>
+<th class="colLast" scope="row">
+<div class="block">Meta-annotation used to create name binding annotations for filters and interceptors.</div>
+</th>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></td>
+<th class="colLast" scope="row">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</th>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></td>
+<th class="colLast" scope="row">
+<div class="block">An I/O exception thrown by <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.</div>
+</th>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that a client request is <a href="jakarta/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+</th>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="jakarta/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</th>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ 
+ a client did not send the required authorization credentials to access the requested resource, i.e.</div>
+</th>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="jakarta/ws/rs/core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</th>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="jakarta/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</th>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/OPTIONS.html" title="annotation in jakarta.ws.rs">OPTIONS</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</th>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</th>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A builder class used for creating <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</th>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a>&lt;<a href="jakarta/ws/rs/ext/ParamConverter.html" title="type parameter in ParamConverter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Defines a contract for a delegate responsible for converting between a <code>String</code> form of a message parameter
+ value and the corresponding custom Java type <code>T</code>.</div>
+</th>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">ParamConverter.Lazy</a></td>
+<th class="colLast" scope="row">
+<div class="block">Mandates that a conversion of any <a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> delegated to a <a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>parameter
+ converter</code></a> annotated with <code>@Lazy</code> annotation SHOULD occur only once the value is actually required (e.g.</div>
+</th>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext">ParamConverterProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider of <a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</th>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/PATCH.html" title="annotation in jakarta.ws.rs">PATCH</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</th>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs">Path</a></td>
+<th class="colLast" scope="row">
+<div class="block">Identifies the URI path that a resource class or class method will serve requests for.</div>
+</th>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs">PathParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.</div>
+</th>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</th>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/POST.html" title="annotation in jakarta.ws.rs">POST</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</th>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/PreMatching.html" title="annotation in jakarta.ws.rs.container">PreMatching</a></td>
+<th class="colLast" scope="row">
+<div class="block">Global binding annotation that can be applied to a <a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>container request filter</code></a> to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.</div>
+</th>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></td>
+<th class="colLast" scope="row">
+<div class="block">A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ <code>jakarta.annotation.Priority</code> class-level annotation value when used or applied by JAX-RS runtime.</div>
+</th>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base JAX-RS runtime processing exception.</div>
+</th>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/Produces.html" title="annotation in jakarta.ws.rs">Produces</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the media type(s) that the methods of a resource class or <a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> can
+ produce.</div>
+</th>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/Provider.html" title="annotation in jakarta.ws.rs.ext">Provider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Marks an implementation of an extension interface that should be discoverable by JAX-RS runtime during a provider
+ scanning phase.</div>
+</th>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</th>
+</tr>
+<tr id="i90" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/PUT.html" title="annotation in jakarta.ws.rs">PUT</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</th>
+</tr>
+<tr id="i91" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs">QueryParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</th>
+</tr>
+<tr id="i92" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptor</a></td>
+<th class="colLast" scope="row">
+<div class="block">Interface for message body reader interceptors that wrap around calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</th>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context class used by <a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</th>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime application exception indicating a request redirection (HTTP <code>3xx</code> status codes).</div>
+</th>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable helper for request processing, all methods throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g.</div>
+</th>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container">ResourceContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</th>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable class to access the resource class and resource method matched by the current request.</div>
+</th>
+</tr>
+<tr id="i98" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</th>
+</tr>
+<tr id="i99" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</th>
+</tr>
+<tr id="i100" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></td>
+<th class="colLast" scope="row">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</th>
+</tr>
+<tr id="i101" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></td>
+<th class="colLast" scope="row">
+<div class="block">An enumeration representing the class of status code.</div>
+</th>
+</tr>
+<tr id="i102" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Base interface for statuses used in responses.</div>
+</th>
+</tr>
+<tr id="i103" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></td>
+<th class="colLast" scope="row">
+<div class="block">JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g.</div>
+</th>
+</tr>
+<tr id="i104" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.</div>
+</th>
+</tr>
+<tr id="i105" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;<a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</th>
+</tr>
+<tr id="i106" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+</th>
+</tr>
+<tr id="i107" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="jakarta/ws/rs/client/RxInvoker.html" title="type parameter in RxInvoker">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr id="i108" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">RxInvokerProvider</a>&lt;<a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a> extends <a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block"><a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</th>
+</tr>
+<tr id="i109" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to security related information.</div>
+</th>
+</tr>
+<tr id="i110" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+</th>
+</tr>
+<tr id="i111" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="jakarta/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</th>
+</tr>
+<tr id="i112" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></td>
+<th class="colLast" scope="row">
+<div class="block">Server-side entry point for creating <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</th>
+</tr>
+<tr id="i113" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></td>
+<th class="colLast" scope="row">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</th>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Base Server Sent Event definition.</div>
+</th>
+</tr>
+<tr id="i115" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></td>
+<th class="colLast" scope="row">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</th>
+</tr>
+<tr id="i116" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client for reading and processing <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</th>
+</tr>
+<tr id="i117" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">JAX-RS <a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</th>
+</tr>
+<tr id="i118" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/StreamingOutput.html" title="interface in jakarta.ws.rs.core">StreamingOutput</a></td>
+<th class="colLast" scope="row">
+<div class="block">A type that may be used as a resource method return value or as the entity in a <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> when the application
+ wishes to stream the output.</div>
+</th>
+</tr>
+<tr id="i119" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/Suspended.html" title="annotation in jakarta.ws.rs.container">Suspended</a></td>
+<th class="colLast" scope="row">
+<div class="block">Inject a suspended <a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked JAX-RS <a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource
+ or sub-resource method</code></a>.</div>
+</th>
+</tr>
+<tr id="i120" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr id="i121" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/container/TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</th>
+</tr>
+<tr id="i122" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</th>
+</tr>
+<tr id="i123" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception thrown by <a href="jakarta/ws/rs/core/UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be
+ constructed based on the current state of the builder.</div>
+</th>
+</tr>
+<tr id="i124" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to application and request URI information.</div>
+</th>
+</tr>
+<tr id="i125" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></td>
+<th class="colLast" scope="row">
+<div class="block">Abstraction for a resource representation variant.</div>
+</th>
+</tr>
+<tr id="i126" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A builder for a list of representation variants.</div>
+</th>
+</tr>
+<tr id="i127" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Runtime exception for applications.</div>
+</th>
+</tr>
+<tr id="i128" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></td>
+<th class="colLast" scope="row">
+<div class="block">A resource target identified by the resource URI.</div>
+</th>
+</tr>
+<tr id="i129" class="rowColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext">WriterInterceptor</a></td>
+<th class="colLast" scope="row">
+<div class="block">Interface for message body writer interceptors that wrap around calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+<tr id="i130" class="altColor">
+<td class="colFirst"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context class used by <a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/allclasses.html b/apidocs/3.0.0/allclasses.html
new file mode 100644
index 0000000..ebd2eac
--- /dev/null
+++ b/apidocs/3.0.0/allclasses.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>All Classes (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<main role="main" class="indexContainer">
+<ul>
+<li><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></li>
+<li><a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></li>
+<li><a href="jakarta/ws/rs/ApplicationPath.html" title="annotation in jakarta.ws.rs">ApplicationPath</a></li>
+<li><a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">AsyncInvoker</span></a></li>
+<li><a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">AsyncResponse</span></a></li>
+<li><a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></li>
+<li><a href="jakarta/ws/rs/BeanParam.html" title="annotation in jakarta.ws.rs">BeanParam</a></li>
+<li><a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></li>
+<li><a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">Client</span></a></li>
+<li><a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></li>
+<li><a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></li>
+<li><a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">ClientRequestContext</span></a></li>
+<li><a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">ClientRequestFilter</span></a></li>
+<li><a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">ClientResponseContext</span></a></li>
+<li><a href="jakarta/ws/rs/client/ClientResponseFilter.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">ClientResponseFilter</span></a></li>
+<li><a href="jakarta/ws/rs/container/CompletionCallback.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">CompletionCallback</span></a></li>
+<li><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">CompletionStageRxInvoker</span></a></li>
+<li><a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Configurable</span></a></li>
+<li><a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Configuration</span></a></li>
+<li><a href="jakarta/ws/rs/container/ConnectionCallback.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ConnectionCallback</span></a></li>
+<li><a href="jakarta/ws/rs/ConstrainedTo.html" title="annotation in jakarta.ws.rs">ConstrainedTo</a></li>
+<li><a href="jakarta/ws/rs/Consumes.html" title="annotation in jakarta.ws.rs">Consumes</a></li>
+<li><a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ContainerRequestContext</span></a></li>
+<li><a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ContainerRequestFilter</span></a></li>
+<li><a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ContainerResponseContext</span></a></li>
+<li><a href="jakarta/ws/rs/container/ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ContainerResponseFilter</span></a></li>
+<li><a href="jakarta/ws/rs/core/Context.html" title="annotation in jakarta.ws.rs.core">Context</a></li>
+<li><a href="jakarta/ws/rs/ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ContextResolver</span></a></li>
+<li><a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></li>
+<li><a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs">CookieParam</a></li>
+<li><a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs">DefaultValue</a></li>
+<li><a href="jakarta/ws/rs/DELETE.html" title="annotation in jakarta.ws.rs">DELETE</a></li>
+<li><a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">DynamicFeature</span></a></li>
+<li><a href="jakarta/ws/rs/Encoded.html" title="annotation in jakarta.ws.rs">Encoded</a></li>
+<li><a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></li>
+<li><a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></li>
+<li><a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ExceptionMapper</span></a></li>
+<li><a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Feature</span></a></li>
+<li><a href="jakarta/ws/rs/core/FeatureContext.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">FeatureContext</span></a></li>
+<li><a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></li>
+<li><a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></li>
+<li><a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs">FormParam</a></li>
+<li><a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></li>
+<li><a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></li>
+<li><a href="jakarta/ws/rs/GET.html" title="annotation in jakarta.ws.rs">GET</a></li>
+<li><a href="jakarta/ws/rs/HEAD.html" title="annotation in jakarta.ws.rs">HEAD</a></li>
+<li><a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs">HeaderParam</a></li>
+<li><a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">HttpHeaders</span></a></li>
+<li><a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></li>
+<li><a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">InboundSseEvent</span></a></li>
+<li><a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">InterceptorContext</span></a></li>
+<li><a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></li>
+<li><a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">Invocation</span></a></li>
+<li><a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">Invocation.Builder</span></a></li>
+<li><a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">InvocationCallback</span></a></li>
+<li><a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></li>
+<li><a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Link.Builder</span></a></li>
+<li><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></li>
+<li><a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></li>
+<li><a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs">MatrixParam</a></li>
+<li><a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></li>
+<li><a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">MessageBodyReader</span></a></li>
+<li><a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">MessageBodyWriter</span></a></li>
+<li><a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></li>
+<li><a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">MultivaluedMap</span></a></li>
+<li><a href="jakarta/ws/rs/NameBinding.html" title="annotation in jakarta.ws.rs">NameBinding</a></li>
+<li><a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></li>
+<li><a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></li>
+<li><a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></li>
+<li><a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></li>
+<li><a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></li>
+<li><a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></li>
+<li><a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></li>
+<li><a href="jakarta/ws/rs/OPTIONS.html" title="annotation in jakarta.ws.rs">OPTIONS</a></li>
+<li><a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">OutboundSseEvent</span></a></li>
+<li><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">OutboundSseEvent.Builder</span></a></li>
+<li><a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ParamConverter</span></a></li>
+<li><a href="jakarta/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">ParamConverter.Lazy</a></li>
+<li><a href="jakarta/ws/rs/ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ParamConverterProvider</span></a></li>
+<li><a href="jakarta/ws/rs/PATCH.html" title="annotation in jakarta.ws.rs">PATCH</a></li>
+<li><a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs">Path</a></li>
+<li><a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs">PathParam</a></li>
+<li><a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">PathSegment</span></a></li>
+<li><a href="jakarta/ws/rs/POST.html" title="annotation in jakarta.ws.rs">POST</a></li>
+<li><a href="jakarta/ws/rs/container/PreMatching.html" title="annotation in jakarta.ws.rs.container">PreMatching</a></li>
+<li><a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></li>
+<li><a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></li>
+<li><a href="jakarta/ws/rs/Produces.html" title="annotation in jakarta.ws.rs">Produces</a></li>
+<li><a href="jakarta/ws/rs/ext/Provider.html" title="annotation in jakarta.ws.rs.ext">Provider</a></li>
+<li><a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">Providers</span></a></li>
+<li><a href="jakarta/ws/rs/PUT.html" title="annotation in jakarta.ws.rs">PUT</a></li>
+<li><a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs">QueryParam</a></li>
+<li><a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ReaderInterceptor</span></a></li>
+<li><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">ReaderInterceptorContext</span></a></li>
+<li><a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></li>
+<li><a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Request</span></a></li>
+<li><a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ResourceContext</span></a></li>
+<li><a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">ResourceInfo</span></a></li>
+<li><a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></li>
+<li><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></li>
+<li><a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></li>
+<li><a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></li>
+<li><a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">Response.StatusType</span></a></li>
+<li><a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></li>
+<li><a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></li>
+<li><a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">RuntimeDelegate.HeaderDelegate</span></a></li>
+<li><a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></li>
+<li><a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">RxInvoker</span></a></li>
+<li><a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">RxInvokerProvider</span></a></li>
+<li><a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">SecurityContext</span></a></li>
+<li><a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></li>
+<li><a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></li>
+<li><a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">Sse</span></a></li>
+<li><a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">SseBroadcaster</span></a></li>
+<li><a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">SseEvent</span></a></li>
+<li><a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">SseEventSink</span></a></li>
+<li><a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse"><span class="interfaceName">SseEventSource</span></a></li>
+<li><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></li>
+<li><a href="jakarta/ws/rs/core/StreamingOutput.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">StreamingOutput</span></a></li>
+<li><a href="jakarta/ws/rs/container/Suspended.html" title="annotation in jakarta.ws.rs.container">Suspended</a></li>
+<li><a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">SyncInvoker</span></a></li>
+<li><a href="jakarta/ws/rs/container/TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><span class="interfaceName">TimeoutHandler</span></a></li>
+<li><a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></li>
+<li><a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></li>
+<li><a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core"><span class="interfaceName">UriInfo</span></a></li>
+<li><a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></li>
+<li><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></li>
+<li><a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></li>
+<li><a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><span class="interfaceName">WebTarget</span></a></li>
+<li><a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">WriterInterceptor</span></a></li>
+<li><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="interfaceName">WriterInterceptorContext</span></a></li>
+</ul>
+</main>
+</body>
+</html>
diff --git a/apidocs/3.0.0/allpackages-index.html b/apidocs/3.0.0/allpackages-index.html
new file mode 100644
index 0000000..ece1495
--- /dev/null
+++ b/apidocs/3.0.0/allpackages-index.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>All Packages (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Packages (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
+</div>
+<div class="allPackagesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packagesSummary">
+<caption><span>Package Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/constant-values.html b/apidocs/3.0.0/constant-values.html
new file mode 100644
index 0000000..bcd3eee
--- /dev/null
+++ b/apidocs/3.0.0/constant-values.html
@@ -0,0 +1,848 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Constant Field Values (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<section role="region">
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#jakarta.ws">jakarta.ws.*</a></li>
+</ul>
+</section>
+</div>
+<div class="constantValuesContainer"><a id="jakarta.ws">
+<!--   -->
+</a>
+<section role="region">
+<h2 title="jakarta.ws">jakarta.ws.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.DELETE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#DELETE">DELETE</a></code></th>
+<td class="colLast"><code>"DELETE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.GET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#GET">GET</a></code></th>
+<td class="colLast"><code>"GET"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.HEAD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#HEAD">HEAD</a></code></th>
+<td class="colLast"><code>"HEAD"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.OPTIONS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#OPTIONS">OPTIONS</a></code></th>
+<td class="colLast"><code>"OPTIONS"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.PATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#PATCH">PATCH</a></code></th>
+<td class="colLast"><code>"PATCH"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.POST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#POST">POST</a></code></th>
+<td class="colLast"><code>"POST"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.HttpMethod.PUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/HttpMethod.html#PUT">PUT</a></code></th>
+<td class="colLast"><code>"PUT"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.Priorities.AUTHENTICATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/Priorities.html#AUTHENTICATION">AUTHENTICATION</a></code></th>
+<td class="colLast"><code>1000</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.Priorities.AUTHORIZATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/Priorities.html#AUTHORIZATION">AUTHORIZATION</a></code></th>
+<td class="colLast"><code>2000</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.Priorities.ENTITY_CODER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/Priorities.html#ENTITY_CODER">ENTITY_CODER</a></code></th>
+<td class="colLast"><code>4000</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.Priorities.HEADER_DECORATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/Priorities.html#HEADER_DECORATOR">HEADER_DECORATOR</a></code></th>
+<td class="colLast"><code>3000</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.Priorities.USER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/Priorities.html#USER">USER</a></code></th>
+<td class="colLast"><code>5000</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.client.ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/client/ClientBuilder.html#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></code></th>
+<td class="colLast"><code>"jakarta.ws.rs.client.ClientBuilder"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.container.AsyncResponse.NO_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/container/AsyncResponse.html#NO_TIMEOUT">NO_TIMEOUT</a></code></th>
+<td class="colLast"><code>0L</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.Cookie.DEFAULT_VERSION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></code></th>
+<td class="colLast"><code>1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ACCEPT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT">ACCEPT</a></code></th>
+<td class="colLast"><code>"Accept"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ACCEPT_CHARSET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_CHARSET">ACCEPT_CHARSET</a></code></th>
+<td class="colLast"><code>"Accept-Charset"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ACCEPT_ENCODING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_ENCODING">ACCEPT_ENCODING</a></code></th>
+<td class="colLast"><code>"Accept-Encoding"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ACCEPT_LANGUAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></code></th>
+<td class="colLast"><code>"Accept-Language"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ALLOW">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ALLOW">ALLOW</a></code></th>
+<td class="colLast"><code>"Allow"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.AUTHORIZATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#AUTHORIZATION">AUTHORIZATION</a></code></th>
+<td class="colLast"><code>"Authorization"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CACHE_CONTROL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CACHE_CONTROL">CACHE_CONTROL</a></code></th>
+<td class="colLast"><code>"Cache-Control"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></code></th>
+<td class="colLast"><code>"Content-Disposition"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_ENCODING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_ENCODING">CONTENT_ENCODING</a></code></th>
+<td class="colLast"><code>"Content-Encoding"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_ID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_ID">CONTENT_ID</a></code></th>
+<td class="colLast"><code>"Content-ID"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_LANGUAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></code></th>
+<td class="colLast"><code>"Content-Language"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_LENGTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LENGTH">CONTENT_LENGTH</a></code></th>
+<td class="colLast"><code>"Content-Length"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_LOCATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LOCATION">CONTENT_LOCATION</a></code></th>
+<td class="colLast"><code>"Content-Location"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_TYPE">CONTENT_TYPE</a></code></th>
+<td class="colLast"><code>"Content-Type"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.COOKIE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#COOKIE">COOKIE</a></code></th>
+<td class="colLast"><code>"Cookie"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.DATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#DATE">DATE</a></code></th>
+<td class="colLast"><code>"Date"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.ETAG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#ETAG">ETAG</a></code></th>
+<td class="colLast"><code>"ETag"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.EXPIRES">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#EXPIRES">EXPIRES</a></code></th>
+<td class="colLast"><code>"Expires"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.HOST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#HOST">HOST</a></code></th>
+<td class="colLast"><code>"Host"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.IF_MATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_MATCH">IF_MATCH</a></code></th>
+<td class="colLast"><code>"If-Match"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.IF_MODIFIED_SINCE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></code></th>
+<td class="colLast"><code>"If-Modified-Since"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.IF_NONE_MATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_NONE_MATCH">IF_NONE_MATCH</a></code></th>
+<td class="colLast"><code>"If-None-Match"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.IF_UNMODIFIED_SINCE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></code></th>
+<td class="colLast"><code>"If-Unmodified-Since"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.LAST_EVENT_ID_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></code></th>
+<td class="colLast"><code>"Last-Event-ID"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.LAST_MODIFIED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#LAST_MODIFIED">LAST_MODIFIED</a></code></th>
+<td class="colLast"><code>"Last-Modified"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.LINK">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#LINK">LINK</a></code></th>
+<td class="colLast"><code>"Link"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.LOCATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#LOCATION">LOCATION</a></code></th>
+<td class="colLast"><code>"Location"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.RETRY_AFTER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#RETRY_AFTER">RETRY_AFTER</a></code></th>
+<td class="colLast"><code>"Retry-After"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.SET_COOKIE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#SET_COOKIE">SET_COOKIE</a></code></th>
+<td class="colLast"><code>"Set-Cookie"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.USER_AGENT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#USER_AGENT">USER_AGENT</a></code></th>
+<td class="colLast"><code>"User-Agent"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.VARY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#VARY">VARY</a></code></th>
+<td class="colLast"><code>"Vary"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.HttpHeaders.WWW_AUTHENTICATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/HttpHeaders.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></code></th>
+<td class="colLast"><code>"WWW-Authenticate"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.Link.REL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/Link.html#REL">REL</a></code></th>
+<td class="colLast"><code>"rel"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.Link.TITLE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/Link.html#TITLE">TITLE</a></code></th>
+<td class="colLast"><code>"title"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.Link.TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/Link.html#TYPE">TYPE</a></code></th>
+<td class="colLast"><code>"type"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_ATOM_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></code></th>
+<td class="colLast"><code>"application/atom+xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></code></th>
+<td class="colLast"><code>"application/x-www-form-urlencoded"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_JSON">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON">APPLICATION_JSON</a></code></th>
+<td class="colLast"><code>"application/json"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_JSON_PATCH_JSON">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></code></th>
+<td class="colLast"><code>"application/json-patch+json"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></code></th>
+<td class="colLast"><code>"application/octet-stream"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_SVG_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></code></th>
+<td class="colLast"><code>"application/svg+xml"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_XHTML_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></code></th>
+<td class="colLast"><code>"application/xhtml+xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.APPLICATION_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XML">APPLICATION_XML</a></code></th>
+<td class="colLast"><code>"application/xml"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.CHARSET_PARAMETER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#CHARSET_PARAMETER">CHARSET_PARAMETER</a></code></th>
+<td class="colLast"><code>"charset"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.MEDIA_TYPE_WILDCARD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></code></th>
+<td class="colLast"><code>"*"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.MULTIPART_FORM_DATA">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></code></th>
+<td class="colLast"><code>"multipart/form-data"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.SERVER_SENT_EVENTS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></code></th>
+<td class="colLast"><code>"text/event-stream"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.TEXT_HTML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#TEXT_HTML">TEXT_HTML</a></code></th>
+<td class="colLast"><code>"text/html"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.TEXT_PLAIN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#TEXT_PLAIN">TEXT_PLAIN</a></code></th>
+<td class="colLast"><code>"text/plain"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.TEXT_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#TEXT_XML">TEXT_XML</a></code></th>
+<td class="colLast"><code>"text/xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.MediaType.WILDCARD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/MediaType.html#WILDCARD">WILDCARD</a></code></th>
+<td class="colLast"><code>"*/*"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.NewCookie.DEFAULT_MAX_AGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/NewCookie.html#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></code></th>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.SecurityContext.BASIC_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/SecurityContext.html#BASIC_AUTH">BASIC_AUTH</a></code></th>
+<td class="colLast"><code>"BASIC"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.SecurityContext.CLIENT_CERT_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/SecurityContext.html#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></code></th>
+<td class="colLast"><code>"CLIENT_CERT"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.SecurityContext.DIGEST_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/SecurityContext.html#DIGEST_AUTH">DIGEST_AUTH</a></code></th>
+<td class="colLast"><code>"DIGEST"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="jakarta.ws.rs.core.SecurityContext.FORM_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/core/SecurityContext.html#FORM_AUTH">FORM_AUTH</a></code></th>
+<td class="colLast"><code>"FORM"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.ext.RuntimeDelegate.JAXRS_RUNTIME_DELEGATE_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></code></th>
+<td class="colLast"><code>"jakarta.ws.rs.ext.RuntimeDelegate"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.sse.SseEvent.RECONNECT_NOT_SET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/sse/SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></th>
+<td class="colLast"><code>-1L</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="jakarta.ws.rs.sse.SseEventSource.Builder.JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></code></th>
+<td class="colLast"><code>"jakarta.ws.rs.sse.SseEventSource.Builder"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/deprecated-list.html b/apidocs/3.0.0/deprecated-list.html
new file mode 100644
index 0000000..352c816
--- /dev/null
+++ b/apidocs/3.0.0/deprecated-list.html
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Deprecated List (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#method">Methods</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a id="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/CacheControl.html#toString()">jakarta.ws.rs.core.CacheControl.toString()</a></th>
+<td class="colLast">
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/CacheControl.html#valueOf(java.lang.String)">jakarta.ws.rs.core.CacheControl.valueOf&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/Cookie.html#toString()">jakarta.ws.rs.core.Cookie.toString()</a></th>
+<td class="colLast">
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/Cookie.html#valueOf(java.lang.String)">jakarta.ws.rs.core.Cookie.valueOf&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/EntityTag.html#toString()">jakarta.ws.rs.core.EntityTag.toString()</a></th>
+<td class="colLast">
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/EntityTag.html#valueOf(java.lang.String)">jakarta.ws.rs.core.EntityTag.valueOf&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/NewCookie.html#toString()">jakarta.ws.rs.core.NewCookie.toString()</a></th>
+<td class="colLast">
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="jakarta/ws/rs/core/NewCookie.html#valueOf(java.lang.String)">jakarta.ws.rs.core.NewCookie.valueOf&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/element-list b/apidocs/3.0.0/element-list
new file mode 100644
index 0000000..4630f9d
--- /dev/null
+++ b/apidocs/3.0.0/element-list
@@ -0,0 +1,6 @@
+jakarta.ws.rs
+jakarta.ws.rs.client
+jakarta.ws.rs.container
+jakarta.ws.rs.core
+jakarta.ws.rs.ext
+jakarta.ws.rs.sse
diff --git a/apidocs/3.0.0/help-doc.html b/apidocs/3.0.0/help-doc.html
new file mode 100644
index 0000000..599d858
--- /dev/null
+++ b/apidocs/3.0.0/help-doc.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>API Help (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2>Overview</h2>
+<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
+<ul>
+<li>Interfaces</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Class or Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class Inheritance Diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class or Interface Declaration</li>
+<li>Class or Interface Description</li>
+</ul>
+<br>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Property Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<br>
+<ul>
+<li>Field Detail</li>
+<li>Property Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type Declaration</li>
+<li>Annotation Type Description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum Declaration</li>
+<li>Enum Description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>All&nbsp;Classes</h2>
+<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Search</h2>
+<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
+</section>
+</li>
+</ul>
+<hr>
+<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/index-all.html b/apidocs/3.0.0/index-all.html
new file mode 100644
index 0000000..ea9b946
--- /dev/null
+++ b/apidocs/3.0.0/index-all.html
@@ -0,0 +1,5459 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Index (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#abortWith(jakarta.ws.rs.core.Response)">abortWith(Response)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Abort the filter chain with a response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#abortWith(jakarta.ws.rs.core.Response)">abortWith(Response)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Abort the filter chain with a response.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt; - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Abstract skeleton implementation of a <a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap(Map&lt;K, List&lt;V&gt;&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Initialize the backing store in the abstract parent multivalued map implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#accept(jakarta.ws.rs.core.MediaType...)">accept(MediaType...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add the accepted response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#accept(java.lang.String...)">accept(String...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add the accepted response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT">ACCEPT</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_CHARSET">ACCEPT_CHARSET</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_ENCODING">ACCEPT_ENCODING</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#accepted()">accepted()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#accepted(java.lang.Object)">accepted(Object)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#ACCEPTED">ACCEPTED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">202 Accepted, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#acceptEncoding(java.lang.String...)">acceptEncoding(String...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable encodings.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#acceptLanguage(java.lang.String...)">acceptLanguage(String...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#acceptLanguage(java.util.Locale...)">acceptLanguage(Locale...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#add()">add()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Add all the values from the supplied value list to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add all the values from the supplied value list to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Add a value to the first position in the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the first position in the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull(List&lt;V&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Define the behavior for adding a <code>null</code> values to the first position in the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#addNull(java.util.List)">addNull(List&lt;V&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Define the behavior for adding a <code>null</code> values to the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#allow(java.lang.String...)">allow(String...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the list of allowed methods for the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#allow(java.util.Set)">allow(Set&lt;String&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the list of allowed methods for the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ALLOW">ALLOW</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Application</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Defines the components of a JAX-RS application and supplies additional meta-data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Application.html#%3Cinit%3E()">Application()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON">APPLICATION_JSON</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON">"application/json"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XML">APPLICATION_XML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XML">"application/xml"</a> media type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ApplicationPath.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Identifies the application path that serves as the base URI for all resource URIs provided by
+ <a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ReaderInterceptor.html#aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom(ReaderInterceptorContext)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptor</a></dt>
+<dd>
+<div class="block">Interceptor method wrapping calls to <a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptor.html#aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo(WriterInterceptorContext)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext">WriterInterceptor</a></dt>
+<dd>
+<div class="block">Interceptor method wrapping calls to <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Form.html#asMap()">asMap()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Returns multivalued map representation of the form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#async()">async()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">An injectable JAX-RS asynchronous response that provides means for asynchronous server side response processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Priorities.html#AUTHENTICATION">AUTHENTICATION</a></span> - Static variable in class jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Security authentication filter/interceptor priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#AUTHORIZATION">AUTHORIZATION</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Priorities.html#AUTHORIZATION">AUTHORIZATION</a></span> - Static variable in class jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Security authorization filter/interceptor priority.</div>
+</dd>
+</dl>
+<a id="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#BAD_GATEWAY">BAD_GATEWAY</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">502 Bad Gateway, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#BAD_REQUEST">BAD_REQUEST</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">400 Bad Request, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">BadRequestException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a <a href="jakarta/ws/rs/core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E()">BadRequestException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">BadRequestException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String)">BadRequestException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">BadRequestException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">BadRequestException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.Throwable)">BadRequestException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#baseUri(java.lang.String)">baseUri(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#baseUri(java.net.URI)">baseUri(URI)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#BASIC_AUTH">BASIC_AUTH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Basic authentication.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/BeanParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">BeanParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseBroadcaster.html#broadcast(jakarta.ws.rs.sse.OutboundSseEvent)">broadcast(OutboundSseEvent)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Publish an SSE event to all registered <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#bufferEntity()">bufferEntity()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Buffer the message entity data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#build()">build()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Build a new client instance using all the configuration previously specified in this client builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#build()">build()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#build()">build()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#build()">build()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Build <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#build()">build()</a></span> - Method in class jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#build(java.lang.Object...)">build(Object...)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#build(java.lang.Object...)">build(Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#build(java.lang.Object%5B%5D,boolean)">build(Object[], boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#build(java.lang.String)">build(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#build(java.lang.String,jakarta.ws.rs.client.Entity)">build(String, Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a request invocation using an arbitrary request method name and request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#buildDelete()">buildDelete()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a DELETE request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#%3Cinit%3E()">Builder()</a></span> - Constructor for class jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#buildFromEncoded(java.lang.Object...)">buildFromEncoded(Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap(Map&lt;String, ?&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#buildFromMap(java.util.Map)">buildFromMap(Map&lt;String, ?&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#buildFromMap(java.util.Map,boolean)">buildFromMap(Map&lt;String, ?&gt;, boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#buildGet()">buildGet()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a GET request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#buildPost(jakarta.ws.rs.client.Entity)">buildPost(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a POST request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#buildPut(jakarta.ws.rs.client.Entity)">buildPut(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a PUT request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized(URI, Object...)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Finish building this link using the supplied values as URI parameters and relativize the result with respect to the
+ supplied URI.</div>
+</dd>
+</dl>
+<a id="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CACHE_CONTROL">CACHE_CONTROL</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl(CacheControl)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Set the cache control data of the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl(CacheControl)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the cache control data of the message.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">CacheControl</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#%3Cinit%3E()">CacheControl()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Create a new instance of CacheControl.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#cancel()">cancel()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#cancel(int)">cancel(int)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#cancel(java.util.Date)">cancel(Date)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#CHARSET_PARAMETER">CHARSET_PARAMETER</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">The media type <code>charset</code> parameter name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#clear()">clear()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Client</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RuntimeType.html#CLIENT">CLIENT</a></span> - jakarta.ws.rs.<a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">JAX-RS client run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Client Certificate authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#CLIENT_ERROR">CLIENT_ERROR</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> - Class in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Main entry point to the client API used to bootstrap <a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#%3Cinit%3E()">ClientBuilder()</a></span> - Constructor for class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ClientErrorException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(int)">ClientErrorException(int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(int,java.lang.Throwable)">ClientErrorException(int, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ClientErrorException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ClientErrorException(Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException(Response.Status, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,int)">ClientErrorException(String, int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ClientErrorException(String, int, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ClientErrorException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ClientErrorException(String, Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException(String, Response.Status, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client request filter context.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">An extension interface implemented by client request filters.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client response filter context.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ClientResponseFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">An extension interface implemented by client response filters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#clone()">clone()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#clone()">clone()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#close()">close()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">
+ Close client instance and all it's associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#close()">close()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Close the underlying message entity input stream (if available and open) as well as releases any other resources
+ associated with the response (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseBroadcaster.html#close()">close()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Close the broadcaster and all registered <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSink.html#close()">close()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Close the <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#close()">close()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Close this event source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#close(long,java.util.concurrent.TimeUnit)">close(long, TimeUnit)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Close this event source and wait for the internal event processing task to complete for up to the specified amount of
+ wait time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#comment(java.lang.String)">comment(String)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set comment string associated with the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/InvocationCallback.html#completed(RESPONSE)">completed(RESPONSE)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a></dt>
+<dd>
+<div class="block">Called when the invocation was successfully completed.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/CompletionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;<a href="jakarta/ws/rs/core/Configurable.html" title="type parameter in Configurable">C</a> extends <a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&gt; - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configuration</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A configuration state associated with a <a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/DynamicFeature.html#configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)">configure(ResourceInfo, FeatureContext)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container">DynamicFeature</a></dt>
+<dd>
+<div class="block">A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a <a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core"><code>runtime configuration</code></a> scope of a particular
+ <a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Feature.html#configure(jakarta.ws.rs.core.FeatureContext)">configure(FeatureContext)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></dt>
+<dd>
+<div class="block">A call-back method called when the feature is to be enabled in a given runtime configuration scope.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#CONFLICT">CONFLICT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">409 Conflict, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ConnectionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Asynchronous request processing lifecycle callback that receives connection related <a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>asynchronous
+ response</code></a> lifecycle events.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout(long, TimeUnit)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the connect timeout.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ConstrainedTo.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates the run-time context in which an annotated JAX-RS provider is applicable.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/Consumes.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Consumes</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the media types that the methods of a resource class or <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Container request filter context.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">An extension interface implemented by container request filters.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Container response filter context.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">An extension interface implemented by container response filters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_ENCODING">CONTENT_ENCODING</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_ID">CONTENT_ID</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LENGTH">CONTENT_LENGTH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_LOCATION">CONTENT_LOCATION</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#CONTENT_TYPE">CONTENT_TYPE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#contentLocation(java.net.URI)">contentLocation(URI)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the content location.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Context.html" title="annotation in jakarta.ws.rs.core"><span class="typeNameLink">Context</span></a> - Annotation Type in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">This annotation is used to inject information into a class field, bean property or method parameter.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;<a href="jakarta/ws/rs/ext/ContextResolver.html" title="type parameter in ContextResolver">T</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supplies context information to resource classes and other providers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#cookie(jakarta.ws.rs.core.Cookie)">cookie(Cookie)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add a cookie to be set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#cookie(jakarta.ws.rs.core.NewCookie...)">cookie(NewCookie...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add cookies to the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#cookie(java.lang.String,java.lang.String)">cookie(String, String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add a cookie to be set.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Cookie</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String)">Cookie(String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Cookie(String, String, String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">Cookie(String, String, String, String, int)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#COOKIE">COOKIE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">CookieParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#created(java.net.URI)">created(URI)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a created resource, set the location header using the supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#CREATED">CREATED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">201 Created, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)">createEndpoint(Application, Class&lt;T&gt;)</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)">createHeaderDelegate(Class&lt;T&gt;)</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Obtain an instance of a <a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createLinkBuilder()">createLinkBuilder()</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createResponseBuilder()">createResponseBuilder()</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createUriBuilder()">createUriBuilder()</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#createVariantListBuilder()">createVariantListBuilder()</a></span> - Method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</dd>
+</dl>
+<a id="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#data(jakarta.ws.rs.core.GenericType,java.lang.Object)">data(GenericType, Object)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and a generic java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#data(java.lang.Class,java.lang.Object)">data(Class, Object)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#data(java.lang.Object)">data(Object)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#DATE">DATE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DefaultValue</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the default value of request meta-data that is bound using one of the following annotations:
+ <a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>,
+ <a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs"><code>CookieParam</code></a>, <a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>, or <a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs"><code>HeaderParam</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#delete()">delete()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#delete()">delete()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#delete()">delete()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#delete()">delete()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#delete(jakarta.ws.rs.client.InvocationCallback)">delete(InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete(GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#delete(java.lang.Class)">delete(Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/DELETE.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DELETE</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#DELETE">DELETE</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP DELETE method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#DIGEST_AUTH">DIGEST_AUTH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Digest authentication.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">A JAX-RS meta-provider for dynamic registration of <i>post-matching</i> providers during a JAX-RS application setup
+ at deployment time.</div>
+</dd>
+</dl>
+<a id="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><a href="jakarta/ws/rs/Encoded.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Encoded</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Disables automatic decoding of parameter values bound using <a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>
+ or <a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#encoding(java.lang.String)">encoding(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity content encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#encodings(java.lang.String...)">encodings(String...)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported encodings.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#encodings(java.lang.String...)">encodings(String...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the encoding(s) for this variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#entity(java.lang.Object)">entity(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">
+ Set the response entity in the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity(Object, Annotation[])</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">
+ Set the response entity in the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#entity(T,jakarta.ws.rs.core.MediaType)">entity(T, MediaType)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity(T, MediaType, Annotation[])</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#entity(T,jakarta.ws.rs.core.Variant)">entity(T, Variant)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity(T, Variant, Annotation[])</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#entity(T,java.lang.String)">entity(T, String)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;<a href="jakarta/ws/rs/client/Entity.html" title="type parameter in Entity">T</a>&gt; - Class in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Priorities.html#ENTITY_CODER">ENTITY_CODER</a></span> - Static variable in class jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">EntityTag</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#%3Cinit%3E(java.lang.String)">EntityTag(String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#%3Cinit%3E(java.lang.String,boolean)">EntityTag(String, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#entrySet()">entrySet()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Compares object argument to this cache control to see if they are the same considering all property values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Compare for equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering weakness and value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">
+ Compares <code>obj</code> to this media type to see if they are the same by comparing type, subtype and parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Compare for equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Compares obj to this variant to see if they are the same considering all property values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#ETAG">ETAG</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#evaluatePreconditions()">evaluatePreconditions()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions for a resource that does not currently exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#evaluatePreconditions(jakarta.ws.rs.core.EntityTag)">evaluatePreconditions(EntityTag)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#evaluatePreconditions(java.util.Date)">evaluatePreconditions(Date)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)">evaluatePreconditions(Date, EntityTag)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;<a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that maps Java exceptions to <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)">executorService(ExecutorService)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#EXPECTATION_FAILED">EXPECTATION_FAILED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">417 Expectation Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#expires(java.util.Date)">expires(Date)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response expiration date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#EXPIRES">EXPIRES</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>.</div>
+</dd>
+</dl>
+<a id="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/InvocationCallback.html#failed(java.lang.Throwable)">failed(Throwable)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a></dt>
+<dd>
+<div class="block">Called when the invocation has failed for any reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#familyOf(int)">familyOf(int)</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Get the response status family for the status code.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Feature</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A feature extension contract.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/FeatureContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A configurable context passed to <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestFilter.html#filter(jakarta.ws.rs.client.ClientRequestContext)">filter(ClientRequestContext)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client">ClientRequestFilter</a></dt>
+<dd>
+<div class="block">Filter method called before a request has been dispatched to a client transport layer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseFilter.html#filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)">filter(ClientRequestContext, ClientResponseContext)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseFilter.html" title="interface in jakarta.ws.rs.client">ClientResponseFilter</a></dt>
+<dd>
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>request
+ filter</code></a> or when the HTTP invocation returns).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestFilter.html#filter(jakarta.ws.rs.container.ContainerRequestContext)">filter(ContainerRequestContext)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container">ContainerRequestFilter</a></dt>
+<dd>
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseFilter.html#filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)">filter(ContainerRequestContext, ContainerResponseContext)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container">ContainerResponseFilter</a></dt>
+<dd>
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>request filter</code></a> or by a matched resource method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#FORBIDDEN">FORBIDDEN</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">403 Forbidden, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ForbiddenException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="jakarta/ws/rs/core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E()">ForbiddenException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ForbiddenException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String)">ForbiddenException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ForbiddenException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ForbiddenException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.Throwable)">ForbiddenException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#forInstance(java.lang.Object)">forInstance(Object)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core"><code>generic type</code></a> from a Java <code>instance</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#form(jakarta.ws.rs.core.Form)">form(Form)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#form(jakarta.ws.rs.core.MultivaluedMap)">form(MultivaluedMap&lt;String, String&gt;)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Form</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Form.html#%3Cinit%3E()">Form()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Form.html#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">Form(MultivaluedMap&lt;String, String&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Form.html#%3Cinit%3E(java.lang.String,java.lang.String)">Form(String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance with a single parameter entry.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#FORM_AUTH">FORM_AUTH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Form authentication.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">FormParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#FOUND">FOUND</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">302 Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fragment(java.lang.String)">fragment(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI fragment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromLink(jakarta.ws.rs.core.Link)">fromLink(Link)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from another link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromLink(jakarta.ws.rs.core.Link)">fromLink(Link)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from a Link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod(Class&lt;?&gt;, String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod(Class&lt;?&gt;, String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a <a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromPath(java.lang.String)">fromPath(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromPath(java.lang.String)">fromPath(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromResource(java.lang.Class)">fromResource(Class&lt;?&gt;)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromResource(java.lang.Class)">fromResource(Class&lt;?&gt;)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a root resource class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#fromResponse(jakarta.ws.rs.core.Response)">fromResponse(Response)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an existing Response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#fromStatusCode(int)">fromStatusCode(int)</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ParamConverter.html#fromString(java.lang.String)">fromString(String)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a></dt>
+<dd>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html#fromString(java.lang.String)">fromString(String)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></dt>
+<dd>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromUri(java.lang.String)">fromUri(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromUri(java.lang.String)">fromUri(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromUri(java.net.URI)">fromUri(URI)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#fromUri(java.net.URI)">fromUri(URI)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#fromUriBuilder(jakarta.ws.rs.core.UriBuilder)">fromUriBuilder(UriBuilder)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</dd>
+</dl>
+<a id="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#GATEWAY_TIMEOUT">GATEWAY_TIMEOUT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">504 Gateway Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;<a href="jakarta/ws/rs/core/GenericEntity.html" title="type parameter in GenericEntity">T</a>&gt; - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#%3Cinit%3E(T)">GenericEntity(T)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Constructs a new generic entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#%3Cinit%3E(T,java.lang.reflect.Type)">GenericEntity(T, Type)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;<a href="jakarta/ws/rs/core/GenericType.html" title="type parameter in GenericType">T</a>&gt; - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#%3Cinit%3E()">GenericType()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Constructs a new generic type, deriving the generic type and class from type parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#%3Cinit%3E(java.lang.reflect.Type)">GenericType(Type)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Constructs a new generic type, supplying the generic type information and deriving the class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#get()">get()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#get()">get()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#get()">get()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#get()">get()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#get(jakarta.ws.rs.client.InvocationCallback)">get(InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#get(jakarta.ws.rs.core.GenericType)">get(GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#get(jakarta.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#get(jakarta.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#get(jakarta.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#get(java.lang.Class)">get(Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#get(java.lang.Object)">get(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="jakarta/ws/rs/GET.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">GET</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#GET">GET</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP GET method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getAbsolutePath()">getAbsolutePath()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute path of the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getAbsolutePathBuilder()">getAbsolutePathBuilder()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">
+ Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">
+ Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getAnnotations()">getAnnotations()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get the entity annotations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getAnnotations()">getAnnotations()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider
+ invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#getAuthenticationScheme()">getAuthenticationScheme()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns the string value of the authentication scheme used to protect the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getBaseUri()">getBaseUri()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the base URI of the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getBaseUriBuilder()">getBaseUriBuilder()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#getCacheExtension()">getCacheExtension()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#getChallenges()">getChallenges()</a></span> - Method in exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Get the list of authorization challenges associated with the exception and applicable to the resource requested by
+ the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Application.html#getClasses()">getClasses()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a set of root resource, provider and <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getClasses()">getClasses()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider, root resource or <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getClient()">getClient()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the client instance associated with the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#getComment()">getComment()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the comment associated with the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#getComment()">getComment()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get a comment string that accompanies the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getConfiguration()">getConfiguration()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the immutable configuration of the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#getConfiguration()">getConfiguration()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ContextResolver.html#getContext(java.lang.Class)">getContext(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a></dt>
+<dd>
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/Providers.html#getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)">getContextResolver(Class&lt;T&gt;, MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getContracts(java.lang.Class)">getContracts(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the extension contract registration information for a component of a given class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ParamConverterProvider.html#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter(Class&lt;T&gt;, Type, Annotation[])</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext">ParamConverterProvider</a></dt>
+<dd>
+<div class="block">Obtain a <a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion for an instance of a particular Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getCookies()">getCookies()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getCookies()">getCookies()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getCookies()">getCookies()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getCookies()">getCookies()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getCookies()">getCookies()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getCookies()">getCookies()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.html#getData()">getData()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getDate()">getDate()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getDate()">getDate()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getDate()">getDate()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getDate()">getDate()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getDate()">getDate()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getDate()">getDate()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#getDomain()">getDomain()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the domain of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getEncoding()">getEncoding()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#getEncoding()">getEncoding()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the encoding of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getEntity()">getEntity()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getEntity()">getEntity()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntity()">getEntity()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#getEntity()">getEntity()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Get the enclosed entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getEntity()">getEntity()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#getEntity()">getEntity()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get object to be written as HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getEntityAnnotations()">getEntityAnnotations()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the annotations attached to the entity instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntityAnnotations()">getEntityAnnotations()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the annotations attached to the entity instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getEntityClass()">getEntityClass()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the raw entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntityClass()">getEntityClass()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the raw entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getEntityTag()">getEntityTag()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntityTag()">getEntityTag()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getEntityTag()">getEntityTag()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getEntityType()">getEntityType()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the generic entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getEntityType()">getEntityType()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the generic entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/Providers.html#getExceptionMapper(java.lang.Class)">getExceptionMapper(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#getExpiry()">getExpiry()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the cookie expiry date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#getFamily()">getFamily()</a></span> - Method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the class of status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.StatusType.html#getFamily()">getFamily()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the class of status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getGenericType()">getGenericType()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get the type of the object to be produced or written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.html#getGenericType()">getGenericType()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get generic data type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the mutable request headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the mutable response headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the mutable request headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the mutable response headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getHeaders()">getHeaders()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get view of the response headers and their object values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Get mutable map of HTTP headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#getHeaders()">getHeaders()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get mutable map of HTTP headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">
+ Get a HTTP header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#getHostnameVerifier()">getHostnameVerifier()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case no hostname verifier has been configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#getId()">getId()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get event identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html#getInputStream()">getInputStream()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Get the input stream of the object to be read.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#getInstance()">getInstance()</a></span> - Static method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getInstances()">getInstances()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider or <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>) instances to be
+ utilized by the configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getLanguage()">getLanguage()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLanguage()">getLanguage()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getLanguage()">getLanguage()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getLanguage()">getLanguage()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLanguage()">getLanguage()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getLanguage()">getLanguage()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the language of the request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLanguage()">getLanguage()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the language of the message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#getLanguage()">getLanguage()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the language of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#getLanguageString()">getLanguageString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the string representation of the variant language, or <code>null</code> if no language has been set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLastModified()">getLastModified()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLastModified()">getLastModified()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLastModified()">getLastModified()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLength()">getLength()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getLength()">getLength()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLength()">getLength()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getLength()">getLength()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLength()">getLength()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLinks()">getLinks()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLinks()">getLinks()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLinks()">getLinks()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getLocation()">getLocation()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getLocation()">getLocation()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getLocation()">getLocation()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#getLocation()">getLocation()</a></span> - Method in exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Get the redirection response location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getMatchedResources()">getMatchedResources()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of the currently matched resource class instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getMatchedURIs()">getMatchedURIs()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getMatchedURIs(boolean)">getMatchedURIs(boolean)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/PathSegment.html#getMatrixParameters()">getMatrixParameters()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></dt>
+<dd>
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#getMaxAge()">getMaxAge()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#getMaxAge()">getMaxAge()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the maximum age of the the cookie in seconds.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getMediaType()">getMediaType()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the media type of the request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getMediaType()">getMediaType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the media type of the message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#getMediaType()">getMediaType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the media type of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get media type of HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.html#getMediaType()">getMediaType()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyReader(Class&lt;T&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyWriter(Class&lt;T&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getMetadata()">getMetadata()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">See <a href="jakarta/ws/rs/core/Response.html#getHeaders()"><code>Response.getHeaders()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getMethod()">getMethod()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getMethod()">getMethod()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#getMethod()">getMethod()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Get the request method, e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#getName()">getName()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the name of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#getName()">getName()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get event name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#getNoCacheFields()">getNoCacheFields()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#getOutputStream()">getOutputStream()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get the output stream for the object to be written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#getParameters()">getParameters()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for a read-only parameter map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getParams()">getParams()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns an immutable map that includes all the link parameters defined on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#getParams()">getParams()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Get the parameter map for this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#getPath()">getPath()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the path of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/PathSegment.html#getPath()">getPath()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></dt>
+<dd>
+<div class="block">Get the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPath()">getPath()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPath(boolean)">getPath(boolean)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPathParameters()">getPathParameters()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPathParameters(boolean)">getPathParameters(boolean)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPathSegments()">getPathSegments()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getPathSegments(boolean)">getPathSegments(boolean)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#getPrivateFields()">getPrivateFields()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Application.html#getProperties()">getProperties()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a map of custom application-wide properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getProperties()">getProperties()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable bag of configuration properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the value for the property with a given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the context of the
+ current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current configuration instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getQueryParameters()">getQueryParameters()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the URI query parameters of the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getQueryParameters(boolean)">getQueryParameters(boolean)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the URI query parameters of the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#getRawType()">getRawType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Gets the raw type of the enclosed entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#getRawType()">getRawType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Returns the object representing the class or interface that declared the type represented by this generic type
+ instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.StatusType.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#getReconnectDelay()">getReconnectDelay()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getRel()">getRel()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>rel</code> param, or <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getRels()">getRels()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list of strings or the empty list if <code>rel</code> is
+ not defined.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getRequest()">getRequest()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the injectable request information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getRequestHeader(java.lang.String)">getRequestHeader(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the values of a HTTP request header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#getRequestHeaders()">getRequestHeaders()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the values of HTTP request headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getRequestUri()">getRequestUri()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute request URI including any query parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#getRequestUriBuilder()">getRequestUriBuilder()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ResourceContext.html#getResource(java.lang.Class)">getResource(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container">ResourceContext</a></dt>
+<dd>
+<div class="block">Get a resolved instance of a resource or sub-resource class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ResourceInfo.html#getResourceClass()">getResourceClass()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></dt>
+<dd>
+<div class="block">Get the resource class that is the target of a request, or <code>null</code> if this information is not available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ResourceInfo.html#getResourceMethod()">getResourceMethod()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></dt>
+<dd>
+<div class="block">Get the resource method that is the target of a request, or <code>null</code> if this information is not available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ResponseProcessingException.html#getResponse()">getResponse()</a></span> - Method in exception jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#getResponse()">getResponse()</a></span> - Method in exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Get the HTTP response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#getRetryTime(java.util.Date)">getRetryTime(Date)</a></span> - Method in exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Get the retry time for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#getRuntimeType()">getRuntimeType()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the runtime type of this configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvokerProvider.html#getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker(SyncInvoker, ExecutorService)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">RxInvokerProvider</a></dt>
+<dd>
+<div class="block">Get <a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getSecurityContext()">getSecurityContext()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the injectable security context information for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Application.html#getSingletons()">getSingletons()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a set of root resource, provider and <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/MessageBodyWriter.html#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getSize(T, Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of the serialized form
+ of <code>t</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#getSMaxAge()">getSMaxAge()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#getSslContext()">getSslContext()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getStatus()">getStatus()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getStatus()">getStatus()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getStatus()">getStatus()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#getStatusCode()">getStatusCode()</a></span> - Method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the associated status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.StatusType.html#getStatusCode()">getStatusCode()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the associated status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#getStatusInfo()">getStatusInfo()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getStatusInfo()">getStatusInfo()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getStatusInfo()">getStatusInfo()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getStringHeaders()">getStringHeaders()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a string view of header values associated with the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#getStringHeaders()">getStringHeaders()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get a string view of header values associated with the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#getStringHeaders()">getStringHeaders()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get view of the response headers and their string values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#getSubtype()">getSubtype()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for subtype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getTitle()">getTitle()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>title</code> param, or <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#getType()">getType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Gets underlying <code>Type</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#getType()">getType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getType()">getType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>type</code> param, or <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#getType()">getType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for primary type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#getType()">getType()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.html#getType()">getType()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get data type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#getUri()">getUri()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#getUri()">getUri()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Get the URI identifying the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getUri()">getUri()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the underlying URI associated with this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#getUri()">getUri()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Get the underlying URI for this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#getUriBuilder()">getUriBuilder()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#getUriBuilder()">getUriBuilder()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> initialized with this link's underlying URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#getUriInfo()">getUriInfo()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get request URI information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a <code>java.security.Principal</code> object containing the name of the current authenticated user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#getValue()">getValue()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the value of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#getValue()">getValue()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#getValues(K)">getValues(K)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Return a non-null list of values for a given key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#getVariant()">getVariant()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity <a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#getVersion()">getVersion()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the version of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#GONE">GONE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">410 Gone, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>.</div>
+</dd>
+</dl>
+<a id="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/TimeoutHandler.html#handleTimeout(jakarta.ws.rs.container.AsyncResponse)">handleTimeout(AsyncResponse)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a></dt>
+<dd>
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#hasEntity()">hasEntity()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#hasEntity()">hasEntity()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Check if there is a non-empty entity input stream is available in the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#hasEntity()">hasEntity()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Check if there is a non-empty entity input stream available in the request message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#hasEntity()">hasEntity()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#hasEntity()">hasEntity()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Generate hash code from cache control properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Generate hashCode based on value and weakness.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">
+ Generate a hash code from the type, subtype and parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#hashCode()">hashCode()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Generate hash code from variant properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#hasRetryAfter()">hasRetryAfter()</a></span> - Method in exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Check if the underlying response contains the information on when is it possible to <a href="jakarta/ws/rs/core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#head()">head()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#head()">head()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#head()">head()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#head()">head()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#head(jakarta.ws.rs.client.InvocationCallback)">head(InvocationCallback&lt;Response&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/HEAD.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HEAD</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#HEAD">HEAD</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP HEAD method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#header(java.lang.String,java.lang.Object)">header(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add an arbitrary header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#header(java.lang.String,java.lang.Object)">header(String, Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add an arbitrary header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Priorities.html#HEADER_DECORATOR">HEADER_DECORATOR</a></span> - Static variable in class jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Header decorator filter/interceptor priority.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HeaderParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#headers(jakarta.ws.rs.core.MultivaluedMap)">headers(MultivaluedMap&lt;String, Object&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#host(java.lang.String)">host(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI host.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#HOST">HOST</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier(HostnameVerifier)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification
+ information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#html(T)">html(T)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#HTTP_VERSION_NOT_SUPPORTED">HTTP_VERSION_NOT_SUPPORTED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">505 HTTP Version Not Supported, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HttpMethod</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</dd>
+</dl>
+<a id="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#id(java.lang.String)">id(String)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set the event id.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_MATCH">IF_MATCH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_NONE_MATCH">IF_NONE_MATCH</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Inbound Server-sent event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#INFORMATIONAL">INFORMATIONAL</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ResourceContext.html#initResource(T)">initResource(T)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container">ResourceContext</a></dt>
+<dd>
+<div class="block">Initialize the resource or sub-resource instance.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context shared by message body interceptors that can be used to wrap calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR">INTERNAL_SERVER_ERROR</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">500 Internal Server Error, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating an <a href="jakarta/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E()">InternalServerErrorException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">InternalServerErrorException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String)">InternalServerErrorException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">InternalServerErrorException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">InternalServerErrorException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.Throwable)">InternalServerErrorException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#invocation(jakarta.ws.rs.core.Link)">invocation(Link)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">
+ Build an invocation builder from a link.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">A client request invocation.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">A client request invocation builder.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;<a href="jakarta/ws/rs/client/InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&gt; - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Callback that can be implemented to receive the asynchronous processing events from the invocation processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#invoke()">invoke()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#invoke(jakarta.ws.rs.core.GenericType)">invoke(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response of the specified generic type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#invoke(java.lang.Class)">invoke(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response of the specified type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#isCancelled()">isCancelled()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the asynchronous response instance has been cancelled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSink.html#isClosed()">isClosed()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Check if the stream has been closed already.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#isCompatible(jakarta.ws.rs.core.MediaType)">isCompatible(MediaType)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Check if this media type is compatible with another media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#isDone()">isDone()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to has finished.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#isEmpty()">isEmpty()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#isEmpty()">isEmpty()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Check if the event is empty (i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#isEnabled(jakarta.ws.rs.core.Feature)">isEnabled(Feature)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a particular <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance has been previously enabled in the runtime configuration
+ context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#isEnabled(java.lang.Class)">isEnabled(Class&lt;? extends Feature&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been previously enabled in the runtime
+ configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#isHttpOnly()">isHttpOnly()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isMustRevalidate()">isMustRevalidate()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isNoCache()">isNoCache()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isNoStore()">isNoStore()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isNoTransform()">isNoTransform()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#isOpen()">isOpen()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Check if this event source instance has already been <a href="jakarta/ws/rs/sse/SseEventSource.html#open()"><code>opened</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isPrivate()">isPrivate()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvokerProvider.html#isProviderFor(java.lang.Class)">isProviderFor(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">RxInvokerProvider</a></dt>
+<dd>
+<div class="block">Determine if this is a provider for the given <a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#isProxyRevalidate()">isProxyRevalidate()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isReadable(Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a></dt>
+<dd>
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a particular type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Check if the connection retry time has been set in the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#isRegistered(java.lang.Class)">isRegistered(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a JAX-RS component of the supplied <code>componentClass</code> class has been previously registered in the
+ runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configuration.html#isRegistered(java.lang.Object)">isRegistered(Object)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a particular JAX-RS <code>component</code> instance (such as providers or <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>features</code></a>) has been
+ previously registered in the runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#isSecure()">isSecure()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Whether the cookie will only be sent over a secure connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#isSecure()">isSecure()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#isSuspended()">isSuspended()</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the asynchronous response instance is in a suspended state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/SecurityContext.html#isUserInRole(java.lang.String)">isUserInRole(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#isWeak()">isWeak()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#isWildcardSubtype()">isWildcardSubtype()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Checks if the subtype is a wildcard.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#isWildcardType()">isWildcardType()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Checks if the primary type is a wildcard.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isWriteable(Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</dd>
+</dl>
+<a id="I:J">
+<!--   -->
+</a>
+<h2 class="title">J</h2>
+<dl>
+<dt><a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a> - package jakarta.ws.rs</dt>
+<dd>
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a> - package jakarta.ws.rs.client</dt>
+<dd>
+<div class="block">The JAX-RS client API</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a> - package jakarta.ws.rs.container</dt>
+<dd>
+<div class="block">Container-specific JAX-RS API.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a> - package jakarta.ws.rs.core</dt>
+<dd>
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a> - package jakarta.ws.rs.ext</dt>
+<dd>
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a> - package jakarta.ws.rs.sse</dt>
+<dd>
+<div class="block">Server-Sent Events related API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html#%3Cinit%3E()">JaxbAdapter()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E()">JaxbLink()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Default constructor needed during unmarshalling.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E(java.net.URI)">JaxbLink(URI)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Construct an instance from a URI and no parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E(java.net.URI,java.util.Map)">JaxbLink(URI, Map&lt;QName, Object&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Construct an instance from a URI and some parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></span> - Static variable in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client"><code>ClientBuilder</code></a> implementation to be returned from
+ <a href="jakarta/ws/rs/client/ClientBuilder.html#newBuilder()"><code>ClientBuilder.newBuilder()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></span> - Static variable in class jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation to be returned from
+ <a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#newBuilder()"><code>newBuilder()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></span> - Static variable in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation to be returned from
+ <a href="jakarta/ws/rs/ext/RuntimeDelegate.html#getInstance()"><code>RuntimeDelegate.getInstance()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#json(T)">json(T)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</dd>
+</dl>
+<a id="I:K">
+<!--   -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#keySet()">keySet()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#keyStore(java.security.KeyStore,char%5B%5D)">keyStore(KeyStore, char[])</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side key store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#keyStore(java.security.KeyStore,java.lang.String)">keyStore(KeyStore, String)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side key store.</div>
+</dd>
+</dl>
+<a id="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#language(java.lang.String)">language(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#language(java.util.Locale)">language(Locale)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#languages(java.util.Locale...)">languages(Locale...)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#languages(java.util.Locale...)">languages(Locale...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the language(s) for this variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#LAST_MODIFIED">LAST_MODIFIED</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#lastModified(java.util.Date)">lastModified(Date)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response entity last modification date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#LENGTH_REQUIRED">LENGTH_REQUIRED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">411 Length Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#link(jakarta.ws.rs.core.Link)">link(Link)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Initialize builder using another link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#link(java.lang.String)">link(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Initialize builder using another link represented as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#link(java.lang.String,java.lang.String)">link(String, String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a link header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#link(java.net.URI,java.lang.String)">link(URI, String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a link header.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">
+ Class representing hypermedia links.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#%3Cinit%3E()">Link()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#LINK">LINK</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Builder class for hypermedia links.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An implementation of JAXB <code>XmlAdapter</code> that maps the JAX-RS
+ <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> type to a value that can be marshalled and unmarshalled by JAXB.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Value type for <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#links(jakarta.ws.rs.core.Link...)">links(Link...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add one or more link headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#location(java.net.URI)">location(URI)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#LOCATION">LOCATION</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>.</div>
+</dd>
+</dl>
+<a id="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html#marshal(jakarta.ws.rs.core.Link)">marshal(Link)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>
+<div class="block">Convert a <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> into a <a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam(String, Object...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam(String, Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">MatrixParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">The value of a type or subtype wildcard "*".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#mediaType(jakarta.ws.rs.core.MediaType)">mediaType(MediaType)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set the <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MediaType</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for a media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#%3Cinit%3E()">MediaType()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String)">MediaType(String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)">MediaType(String, String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and <a href="jakarta/ws/rs/core/MediaType.html#CHARSET_PARAMETER">"charset"</a>
+ parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)">MediaType(String, String, Map&lt;String, String&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes(MediaType...)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes(MediaType...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the media type(s) for this variant.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;<a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supports the conversion of a stream to a Java type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supports the conversion of a Java type to a stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">method(String, Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)">method(String, InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method(String, GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED">METHOD_NOT_ALLOWED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">405 Method Not Allowed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#MOVED_PERMANENTLY">MOVED_PERMANENTLY</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">301 Moved Permanently, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A hash table based implementation of <a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E()">MultivaluedHashMap()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity (<code>16</code>) and the default load factor
+ (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(int)">MultivaluedHashMap(int)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and the default load factor
+ (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(int,float)">MultivaluedHashMap(int, float)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and load factor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">MultivaluedHashMap(MultivaluedMap&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified <a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(java.util.Map)">MultivaluedHashMap(Map&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt; - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A map of key-values pairs.</div>
+</dd>
+</dl>
+<a id="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#name(java.lang.String)">name(String)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event name.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NameBinding.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">NameBinding</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Meta-annotation used to create name binding annotations for filters and interceptors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NETWORK_AUTHENTICATION_REQUIRED">NETWORK_AUTHENTICATION_REQUIRED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">511 Network Authentication Required, see <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/Sse.html#newBroadcaster()">newBroadcaster()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#newBuilder()">newBuilder()</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder implementation class provided by the
+ JAX-RS implementation provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#newClient()">newClient()</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new <a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided by the JAX-RS
+ implementation provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#newClient(jakarta.ws.rs.core.Configuration)">newClient(Configuration)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new custom-configured <a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided
+ by the JAX-RS implementation provider.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NewCookie</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie)">NewCookie(Cookie)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie(Cookie, String, int, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie(Cookie, String, int, Date, boolean, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String)">NewCookie(String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">NewCookie(String, String, String, String, int, String, int, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">NewCookie(String, String, String, String, String, int, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">NewCookie(String, String, String, String, String, int, boolean, boolean)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/Sse.html#newEvent(java.lang.String)">newEvent(String)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Create new <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/Sse.html#newEvent(java.lang.String,java.lang.String)">newEvent(String, String)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Create new <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/Sse.html#newEventBuilder()">newEventBuilder()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Get a new outbound event builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#newInstance()">newInstance()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Create a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#newInstance()">newInstance()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Creates a new instance of UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#newInstance()">newInstance()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Create a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NO_CONTENT">NO_CONTENT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">204 No Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#NO_TIMEOUT">NO_TIMEOUT</a></span> - Static variable in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Constant specifying no suspend timeout value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#noContent()">noContent()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NoContentException</span></a> - Exception in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An I/O exception thrown by <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.String)">NoContentException(String)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoContentException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.Throwable)">NoContentException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE">NOT_ACCEPTABLE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">406 Not Acceptable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NOT_FOUND">NOT_FOUND</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">404 Not Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NOT_IMPLEMENTED">NOT_IMPLEMENTED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">501 Not Implemented, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#NOT_MODIFIED">NOT_MODIFIED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">304 Not Modified, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#notAcceptable(java.util.List)">notAcceptable(List&lt;Variant&gt;)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that a client request is <a href="jakarta/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E()">NotAcceptableException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAcceptableException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String)">NotAcceptableException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAcceptableException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotAcceptableException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.Throwable)">NotAcceptableException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAllowedException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="jakarta/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAllowedException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAllowedException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.String...)">NotAllowedException(String, String...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)">NotAllowedException(String, String, String...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)">NotAllowedException(String, Throwable, String...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.Throwable,java.lang.String...)">NotAllowedException(Throwable, String...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ 
+ a client did not send the required authorization credentials to access the requested resource, i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAuthorizedException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.Object,java.lang.Object...)">NotAuthorizedException(Object, Object...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAuthorizedException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)">NotAuthorizedException(String, Object, Object...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException(String, Throwable, Object, Object...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException(Throwable, Object, Object...)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotFoundException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="jakarta/ws/rs/core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E()">NotFoundException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotFoundException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String)">NotFoundException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotFoundException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotFoundException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.Throwable)">NotFoundException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#notModified()">notModified()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#notModified(jakarta.ws.rs.core.EntityTag)">notModified(EntityTag)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#notModified(java.lang.String)">notModified(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status and a strong entity tag.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotSupportedException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="jakarta/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E()">NotSupportedException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotSupportedException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String)">NotSupportedException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotSupportedException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotSupportedException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.Throwable)">NotSupportedException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+</dl>
+<a id="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#ok()">ok()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#ok(java.lang.Object)">ok(Object)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#ok(java.lang.Object,jakarta.ws.rs.core.MediaType)">ok(Object, MediaType)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#ok(java.lang.Object,jakarta.ws.rs.core.Variant)">ok(Object, Variant)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#ok(java.lang.Object,java.lang.String)">ok(Object, String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#OK">OK</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">200 OK, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseBroadcaster.html#onClose(java.util.function.Consumer)">onClose(Consumer&lt;SseEventSink&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register a listener, which will be called when this SseBroadcaster closes a given event <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> or
+ tries to write to a given <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> that is already closed (either by client closing the connection
+ or by calling <a href="jakarta/ws/rs/sse/SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/CompletionCallback.html#onComplete(java.lang.Throwable)">onComplete(Throwable)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/CompletionCallback.html" title="interface in jakarta.ws.rs.container">CompletionCallback</a></dt>
+<dd>
+<div class="block">A completion callback notification method that will be invoked when the request processing is finished, after a
+ response is processed and is sent back to the client or when an unmapped throwable has been propagated to the hosting
+ I/O container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ConnectionCallback.html#onDisconnect(jakarta.ws.rs.container.AsyncResponse)">onDisconnect(AsyncResponse)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ConnectionCallback.html" title="interface in jakarta.ws.rs.container">ConnectionCallback</a></dt>
+<dd>
+<div class="block">This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseBroadcaster.html#onError(java.util.function.BiConsumer)">onError(BiConsumer&lt;SseEventSink, Throwable&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register a listener, which will be called when an exception is thrown by a given <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>
+ when this SseBroadcaster tries to write to it or close it.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#open()">open()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Open the connection to the supplied SSE underlying <a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>events</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#options()">options()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#options()">options()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#options()">options()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#options()">options()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#options(jakarta.ws.rs.client.InvocationCallback)">options(InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#options(jakarta.ws.rs.core.GenericType)">options(GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#options(jakarta.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#options(jakarta.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#options(jakarta.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#options(java.lang.Class)">options(Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/OPTIONS.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">OPTIONS</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#OPTIONS">OPTIONS</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP OPTIONS method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#OTHER">OTHER</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">A builder class used for creating <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</dd>
+</dl>
+<a id="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Form.html#param(java.lang.String,java.lang.String)">param(String, String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Adds a new value to the specified form parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#param(java.lang.String,java.lang.String)">param(String, String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set an arbitrary parameter on this link.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;<a href="jakarta/ws/rs/ext/ParamConverter.html" title="type parameter in ParamConverter">T</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Defines a contract for a delegate responsible for converting between a <code>String</code> form of a message parameter
+ value and the corresponding custom Java type <code>T</code>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> - Annotation Type in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Mandates that a conversion of any <a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> delegated to a <a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>parameter
+ converter</code></a> annotated with <code>@Lazy</code> annotation SHOULD occur only once the value is actually required (e.g.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider of <a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#PARTIAL_CONTENT">PARTIAL_CONTENT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">206 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/PATCH.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PATCH</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#PATCH">PATCH</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP PATCH method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#path(java.lang.Class)">path(Class)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a Path-annotated class to the existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#path(java.lang.Class,java.lang.String)">path(Class, String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a Path-annotated method to the existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#path(java.lang.reflect.Method)">path(Method)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a <a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method to the existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#path(java.lang.String)">path(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#path(java.lang.String)">path(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append path to the existing path.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Path</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Identifies the URI path that a resource class or class method will serve requests for.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PathParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">PathSegment</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#PAYMENT_REQUIRED">PAYMENT_REQUIRED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">402 Payment Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#port(int)">port(int)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#post(jakarta.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">post(Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/POST.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">POST</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#POST">POST</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP POST method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#PRECONDITION_FAILED">PRECONDITION_FAILED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">412 Precondition Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#PRECONDITION_REQUIRED">PRECONDITION_REQUIRED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">428 Precondition required, see <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP
+ Status Codes</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/PreMatching.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> - Annotation Type in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Global binding annotation that can be applied to a <a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>container request filter</code></a> to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs"><span class="typeNameLink">Priorities</span></a> - Class in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ <code>jakarta.annotation.Priority</code> class-level annotation value when used or applied by JAX-RS runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html#proceed()">proceed()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#proceed()">proceed()</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ProcessingException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A base JAX-RS runtime processing exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.String)">ProcessingException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ProcessingException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">
+ Constructs a new JAX-RS runtime processing exception with the specified detail message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.Throwable)">ProcessingException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ <code>(cause==null ? null : cause.toString())</code> (which typically contains the class and detail message of
+ <code>cause</code>).</div>
+</dd>
+<dt><a href="jakarta/ws/rs/Produces.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Produces</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the media type(s) that the methods of a resource class or <a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> can
+ produce.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Set the new configuration property, if already set, the existing value of the property will be updated.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">Provider</span></a> - Annotation Type in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Marks an implementation of an extension interface that should be discoverable by JAX-RS runtime during a provider
+ scanning phase.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">Providers</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#PROXY_AUTHENTICATION_REQUIRED">PROXY_AUTHENTICATION_REQUIRED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">407 Proxy Authentication Required, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#put(jakarta.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">put(Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#put(K,java.util.List)">put(K, List&lt;V&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="jakarta/ws/rs/PUT.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PUT</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#PUT">PUT</a></span> - Static variable in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP PUT method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll(Map&lt;? extends K, ? extends List&lt;V&gt;&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">
+ Set the value for the key to be a one item list consisting of the supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</dd>
+</dl>
+<a id="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#queryParam(java.lang.String,java.lang.Object...)">queryParam(String, Object...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI of the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#queryParam(java.lang.String,java.lang.Object...)">queryParam(String, Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">QueryParam</span></a> - Annotation Type in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</dd>
+</dl>
+<a id="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#readData()">readData()</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#readData(jakarta.ws.rs.core.GenericType)">readData(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given generic type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)">readData(GenericType&lt;T&gt;, MediaType)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given generic type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#readData(java.lang.Class)">readData(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/InboundSseEvent.html#readData(java.lang.Class,jakarta.ws.rs.core.MediaType)">readData(Class&lt;T&gt;, MediaType)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#readEntity(jakarta.ws.rs.core.GenericType)">readEntity(GenericType&lt;T&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity(GenericType&lt;T&gt;, Annotation[])</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#readEntity(java.lang.Class)">readEntity(Class&lt;T&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#readEntity(java.lang.Class,java.lang.annotation.Annotation%5B%5D)">readEntity(Class&lt;T&gt;, Annotation[])</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Interface for message body reader interceptors that wrap around calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context class used by <a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom(Class&lt;T&gt;, Type, Annotation[], MediaType, MultivaluedMap&lt;String, String&gt;, InputStream)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a></dt>
+<dd>
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout(long, TimeUnit)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the read timeout.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></span> - Static variable in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html#reconnectDelay(long)">reconnectDelay(long)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery(long, TimeUnit)</a></span> - Method in class jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#REDIRECTION">REDIRECTION</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">RedirectionException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime application exception indicating a request redirection (HTTP <code>3xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(int,java.net.URI)">RedirectionException(int, URI)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">RedirectionException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException(Response.Status, URI)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,int,java.net.URI)">RedirectionException(String, int, URI)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">RedirectionException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException(String, Response.Status, URI)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseBroadcaster.html#register(jakarta.ws.rs.sse.SseEventSink)">register(SseEventSink)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register provided <a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#register(java.lang.Class)">register(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Class)">register(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Class,int)">register(Class&lt;?&gt;, int)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#register(java.lang.Class,java.lang.Class...)">register(Class&lt;?&gt;, Class&lt;?&gt;...)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register(Class&lt;?&gt;, Class&lt;?&gt;...)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Class,java.util.Map)">register(Class&lt;?&gt;, Map&lt;Class&lt;?&gt;, Integer&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#register(java.lang.Object)">register(Object)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Object)">register(Object)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Object,int)">register(Object, int)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register(Object, Class&lt;?&gt;...)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#register(java.lang.Object,java.lang.Object...)">register(Object, Object...)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Configurable.html#register(java.lang.Object,java.util.Map)">register(Object, Map&lt;Class&lt;?&gt;, Integer&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer)">register(Consumer&lt;InboundSseEvent&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register a <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer)">register(Consumer&lt;InboundSseEvent&gt;, Consumer&lt;Throwable&gt;)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register(Consumer&lt;InboundSseEvent&gt;, Consumer&lt;Throwable&gt;, Runnable)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#rel(java.lang.String)">rel(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a link relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#REL">REL</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Rel link param from RFC 5988.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#relativize(java.net.URI)">relativize(URI)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Relativize a URI with respect to the current request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#remove(java.lang.Object)">remove(Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#replaceAll(jakarta.ws.rs.core.MultivaluedMap)">replaceAll(MultivaluedMap&lt;String, Object&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#replaceMatrix(java.lang.String)">replaceMatrix(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam(String, Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Replace the existing value(s) of a matrix parameter on the current final segment of the URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#replacePath(java.lang.String)">replacePath(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#replaceQuery(java.lang.String)">replaceQuery(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam(String, Object...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#request()">request()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#request(jakarta.ws.rs.core.MediaType...)">request(MediaType...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#request(java.lang.String...)">request(String...)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Request</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable helper for request processing, all methods throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#REQUEST_ENTITY_TOO_LARGE">REQUEST_ENTITY_TOO_LARGE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">413 Request Entity Too Large, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#REQUEST_HEADER_FIELDS_TOO_LARGE">REQUEST_HEADER_FIELDS_TOO_LARGE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">431 Request Header Fields Too Large, see <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#REQUEST_TIMEOUT">REQUEST_TIMEOUT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">408 Request Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#REQUEST_URI_TOO_LONG">REQUEST_URI_TOO_LONG</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">414 Request-URI Too Long, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#REQUESTED_RANGE_NOT_SATISFIABLE">REQUESTED_RANGE_NOT_SATISFIABLE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">416 Requested Range Not Satisfiable, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#RESET_CONTENT">RESET_CONTENT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">205 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriInfo.html#resolve(java.net.URI)">resolve(URI)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Resolve a relative URI with respect to the base URI of the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate(String, Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate(String, Object, boolean)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate(String, Object, boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied encoded value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded(String, Object)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied encoded value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplates(java.util.Map)">resolveTemplates(Map&lt;String, Object&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplates(java.util.Map)">resolveTemplates(Map&lt;String, Object&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates(Map&lt;String, Object&gt;, boolean)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates(Map&lt;String, Object&gt;, boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/WebTarget.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded(Map&lt;String, Object&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded(Map&lt;String, Object&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">An injectable class to access the resource class and resource method matched by the current request.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#%3Cinit%3E()">Response()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static methods to obtain a <a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a
+ Response from that.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> - Enum in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a> - Enum in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An enumeration representing the class of status code.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Base interface for statuses used in responses.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#%3Cinit%3E()">ResponseBuilder()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static methods of <code>Response</code> to obtain an instance.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a> - Exception in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String)">ResponseProcessingException(Response, String)</a></span> - Constructor for exception jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException(Response, String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">
+ Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new JAX-RS runtime response processing exception for a specific <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> with the
+ specified cause and a detail message of <code>(cause==null ? null : cause.toString())</code> (which typically contains the
+ class and detail message of <code>cause</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#resume(java.lang.Object)">resume(Object)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Resume the suspended request processing using the provided response data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#resume(java.lang.Throwable)">resume(Throwable)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Resume the suspended request processing using the provided throwable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#RETRY_AFTER">RETRY_AFTER</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a> - Class in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#%3Cinit%3E()">RuntimeDelegate()</a></span> - Constructor for class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;<a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt; - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs"><span class="typeNameLink">RuntimeType</span></a> - Enum in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#rx()">rx()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.Builder.html#rx(java.lang.Class)">rx(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access a reactive invoker based on a <a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;<a href="jakarta/ws/rs/client/RxInvoker.html" title="type parameter in RxInvoker">T</a>&gt; - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;<a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a> extends <a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt; - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block"><a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</dd>
+</dl>
+<a id="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService(ScheduledExecutorService)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#scheme(java.lang.String)">scheme(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI scheme.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#schemeSpecificPart(java.lang.String)">schemeSpecificPart(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to security related information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#SEE_OTHER">SEE_OTHER</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">303 See Other, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#seeOther(java.net.URI)">seeOther(URI)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#segment(java.lang.String...)">segment(String...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append path segments to the existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Request.html#selectVariant(java.util.List)">selectVariant(List&lt;Variant&gt;)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Select the representation variant that best matches the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSink.html#send(jakarta.ws.rs.sse.OutboundSseEvent)">send(OutboundSseEvent)</a></span> - Method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RuntimeType.html#SERVER">SERVER</a></span> - jakarta.ws.rs.<a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">JAX-RS server run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#SERVER_ERROR">SERVER_ERROR</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Server sent events media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#serverError()">serverError()</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServerErrorException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(int)">ServerErrorException(int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(int,java.lang.Throwable)">ServerErrorException(int, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServerErrorException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ServerErrorException(Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException(Response.Status, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,int)">ServerErrorException(String, int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ServerErrorException(String, int, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServerErrorException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ServerErrorException(String, Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException(String, Response.Status, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE">SERVICE_UNAVAILABLE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">503 Service Unavailable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="jakarta/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E()">ServiceUnavailableException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServiceUnavailableException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException(Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.Long)">ServiceUnavailableException(Long)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.Long,java.lang.Throwable)">ServiceUnavailableException(Long, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String)">ServiceUnavailableException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServiceUnavailableException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException(String, Response, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.lang.Long)">ServiceUnavailableException(String, Long)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)">ServiceUnavailableException(String, Long, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.util.Date)">ServiceUnavailableException(String, Date)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)">ServiceUnavailableException(String, Date, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.util.Date)">ServiceUnavailableException(Date)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.util.Date,java.lang.Throwable)">ServiceUnavailableException(Date, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#SET_COOKIE">SET_COOKIE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations(Annotation[])</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider
+ invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Update object to be written as HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity(Object, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity(Object, Annotation[], MediaType)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#setEntityStream(java.io.InputStream)">setEntityStream(InputStream)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set a new entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setEntityStream(java.io.InputStream)">setEntityStream(InputStream)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setEntityStream(java.io.OutputStream)">setEntityStream(OutputStream)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#setEntityStream(java.io.OutputStream)">setEntityStream(OutputStream)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType(Type)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update type of the object to be produced or written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html#setInputStream(java.io.InputStream)">setInputStream(InputStream)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Set the input stream of the object to be read.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.html#setInstance(jakarta.ws.rs.ext.RuntimeDelegate)">setInstance(RuntimeDelegate)</a></span> - Static method in class jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Set the runtime delegate that will be used by JAX-RS classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setMaxAge(int)">setMaxAge(int)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#setMediaType(jakarta.ws.rs.core.MediaType)">setMediaType(MediaType)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update media type of HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setMethod(java.lang.String)">setMethod(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setMethod(java.lang.String)">setMethod(String)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setMustRevalidate(boolean)">setMustRevalidate(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setNoCache(boolean)">setNoCache(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setNoStore(boolean)">setNoStore(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setNoTransform(boolean)">setNoTransform(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html#setOutputStream(java.io.OutputStream)">setOutputStream(OutputStream)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Set a new output stream for the object to be written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setPrivate(boolean)">setPrivate(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setProxyRevalidate(boolean)">setProxyRevalidate(boolean)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setRequestUri(java.net.URI)">setRequestUri(URI)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI using the current base URI of the application to resolve the application-specific request URI
+ part.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setRequestUri(java.net.URI,java.net.URI)">setRequestUri(URI, URI)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific request URI part.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerRequestContext.html#setSecurityContext(jakarta.ws.rs.core.SecurityContext)">setSecurityContext(SecurityContext)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new injectable security context information for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#setSMaxAge(int)">setSMaxAge(int)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#setStatus(int)">setStatus(int)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set a new response status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#setStatus(int)">setStatus(int)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new response status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientResponseContext.html#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo(Response.StatusType)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/ContainerResponseContext.html#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo(Response.StatusType)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)">setTimeout(long, TimeUnit)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Set/update the suspend timeout.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/container/AsyncResponse.html#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)">setTimeoutHandler(TimeoutHandler)</a></span> - Method in interface jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/InterceptorContext.html#setType(java.lang.Class)">setType(Class&lt;?&gt;)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update Java type before calling message body provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientRequestContext.html#setUri(java.net.URI)">setUri(URI)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#size()">size()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">Sse</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Server-side entry point for creating <a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Server-Sent events broadcasting facility.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Base Server Sent Event definition.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Outbound Server-Sent Events stream.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a> - Interface in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Client for reading and processing <a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a> - Class in <a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></dt>
+<dd>
+<div class="block">JAX-RS <a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#sslContext(javax.net.ssl.SSLContext)">sslContext(SSLContext)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ <a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web targets</code></a> created by the client instance that is using this SSL context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#status(int)">status(int)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#status(int)">status(int)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#status(int,java.lang.String)">status(int, String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#status(int,java.lang.String)">status(int, String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.Status)">status(Response.Status)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#status(jakarta.ws.rs.core.Response.Status)">status(Response.Status)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.StatusType)">status(Response.StatusType)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#status(jakarta.ws.rs.core.Response.StatusType)">status(Response.StatusType)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#store">store</a></span> - Variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/StreamingOutput.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A type that may be used as a resource method return value or as the entity in a <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> when the application
+ wishes to stream the output.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#submit()">submit()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#submit(jakarta.ws.rs.client.InvocationCallback)">submit(InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and register an <a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client"><code>InvocationCallback</code></a> to process the future
+ result of the invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#submit(jakarta.ws.rs.core.GenericType)">submit(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Invocation.html#submit(java.lang.Class)">submit(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#SUCCESSFUL">SUCCESSFUL</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/Suspended.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">Suspended</span></a> - Annotation Type in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Inject a suspended <a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked JAX-RS <a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource
+ or sub-resource method</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</dd>
+</dl>
+<a id="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#tag(jakarta.ws.rs.core.EntityTag)">tag(EntityTag)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set a response entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#tag(java.lang.String)">tag(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">
+ Set a strong response entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.Builder.html#target(jakarta.ws.rs.client.WebTarget)">target(WebTarget)</a></span> - Method in class jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/sse/SseEventSource.html#target(jakarta.ws.rs.client.WebTarget)">target(WebTarget)</a></span> - Static method in interface jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Create a new <a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#target(jakarta.ws.rs.core.Link)">target(Link)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#target(jakarta.ws.rs.core.UriBuilder)">target(UriBuilder)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#target(java.lang.String)">target(String)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Client.html#target(java.net.URI)">target(URI)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#TEMPORARY_REDIRECT">TEMPORARY_REDIRECT</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">307 Temporary Redirect, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.html#temporaryRedirect(java.net.URI)">temporaryRedirect(URI)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#text(T)">text(T)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create a <a href="jakarta/ws/rs/core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_HTML">TEXT_HTML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#TEXT_HTML">"text/html"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_PLAIN">TEXT_PLAIN</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_XML">TEXT_XML</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="jakarta/ws/rs/core/MediaType.html#TEXT_XML">"text/xml"</a> media type.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/container/TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a> - Interface in <a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></dt>
+<dd>
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#title(java.lang.String)">title(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#TITLE">TITLE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Title link param from RFC 5988.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#toCookie()">toCookie()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Obtain a new instance of a <a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a> with the same name, value, path, domain and version as this
+ <code>NewCookie</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.StatusType.html#toEnum()">toEnum()</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the this Status Type as a <a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core"><code>Response.Status</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#TOO_MANY_REQUESTS">TOO_MANY_REQUESTS</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">429 Too Many Requests, see <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status
+ Codes</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ExceptionMapper.html#toResponse(E)">toResponse(E)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a></dt>
+<dd>
+<div class="block">Map an exception to a <a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericEntity.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/GenericType.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns a string representation as a link header (RFC 5988).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Convert the media type to a string suitable for use as the value of a corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#toString()">toString()</a></span> - Method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#toString()">toString()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/ParamConverter.html#toString(T)">toString(T)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a></dt>
+<dd>
+<div class="block">Convert the supplied value to a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html#toString(T)">toString(T)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></dt>
+<dd>
+<div class="block">Convert the supplied value to a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#toTemplate()">toTemplate()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Get the URI template string represented by this URI builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#trace()">trace()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#trace()">trace()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#trace()">trace()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#trace()">trace()</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#trace(jakarta.ws.rs.client.InvocationCallback)">trace(InvocationCallback&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace(GenericType&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/RxInvoker.html#trace(java.lang.Class)">trace(Class&lt;R&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/AsyncInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/SyncInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#trustStore(java.security.KeyStore)">trustStore(KeyStore)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side trust store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#type(jakarta.ws.rs.core.MediaType)">type(MediaType)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#type(java.lang.String)">type(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#type(java.lang.String)">type(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#TYPE">TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Type link param from RFC 5988.</div>
+</dd>
+</dl>
+<a id="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#UNAUTHORIZED">UNAUTHORIZED</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">401 Unauthorized, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.JaxbAdapter.html#unmarshal(jakarta.ws.rs.core.Link.JaxbLink)">unmarshal(Link.JaxbLink)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>
+<div class="block">Convert a <a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE">UNSUPPORTED_MEDIA_TYPE</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">415 Unsupported Media Type, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#uri(java.lang.String)">uri(String)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#uri(java.lang.String)">uri(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#uri(java.net.URI)">uri(URI)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#uri(java.net.URI)">uri(URI)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing any existing values for those
+ components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.Builder.html#uriBuilder(jakarta.ws.rs.core.UriBuilder)">uriBuilder(UriBuilder)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#%3Cinit%3E()">UriBuilder()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code> methods to obtain an instance.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a> - Exception in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A runtime exception thrown by <a href="jakarta/ws/rs/core/UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be
+ constructed based on the current state of the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilderException.html#%3Cinit%3E()">UriBuilderException()</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.String)">UriBuilderException(String)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">UriBuilderException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.Throwable)">UriBuilderException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs a new exception with the specified cause and a detail message of
+ (<code>cause==null ? null : cause.toString()</code>) (which typically contains the class and detail message of
+ cause).</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">UriInfo</span></a> - Interface in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to application and request URI information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#USE_PROXY">USE_PROXY</a></span> - jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">305 Use Proxy, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1
+ documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Priorities.html#USER">USER</a></span> - Static variable in class jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">User-level filter/interceptor priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#USER_AGENT">USER_AGENT</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/UriBuilder.html#userInfo(java.lang.String)">userInfo(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI user-info.</div>
+</dd>
+</dl>
+<a id="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ApplicationPath.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/ApplicationPath.html" title="annotation in jakarta.ws.rs">ApplicationPath</a></dt>
+<dd>
+<div class="block">Defines the base URI for all resource URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ConstrainedTo.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/ConstrainedTo.html" title="annotation in jakarta.ws.rs">ConstrainedTo</a></dt>
+<dd>
+<div class="block">Define the <a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs"><code>constraint type</code></a> to be placed on a JAX-RS provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Consumes.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/Consumes.html" title="annotation in jakarta.ws.rs">Consumes</a></dt>
+<dd>
+<div class="block">A list of media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/CookieParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs">CookieParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP cookie whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/DefaultValue.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs">DefaultValue</a></dt>
+<dd>
+<div class="block">The specified default value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/FormParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs">FormParam</a></dt>
+<dd>
+<div class="block">Defines the name of the form parameter whose value will be used to initialize the value of the annotated method
+ argument.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HeaderParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs">HeaderParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP header whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/HttpMethod.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">Specifies the name of a HTTP method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/MatrixParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs">MatrixParam</a></dt>
+<dd>
+<div class="block">Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Path.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs">Path</a></dt>
+<dd>
+<div class="block">Defines a URI template for the resource class or method, must not include matrix parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/PathParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs">PathParam</a></dt>
+<dd>
+<div class="block">Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/Produces.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/Produces.html" title="annotation in jakarta.ws.rs">Produces</a></dt>
+<dd>
+<div class="block">A list of media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/QueryParam.html#value()">value()</a></span> - Method in annotation type jakarta.ws.rs.<a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs">QueryParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/CacheControl.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Cookie.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/EntityTag.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Link.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/NewCookie.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RuntimeType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum jakarta.ws.rs.<a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html#values()">values()</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.Family.html#values()">values()</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.Status.html#values()">values()</a></span> - Static method in enum jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/RuntimeType.html#values()">values()</a></span> - Static method in enum jakarta.ws.rs.<a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#variant(jakarta.ws.rs.core.Variant)">variant(Variant)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">
+ Set message entity representation metadata.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">Abstraction for a resource representation variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant(MediaType, String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant(MediaType, String, String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant(MediaType, String, String, String, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant(MediaType, Locale, String)</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a> - Class in <a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></dt>
+<dd>
+<div class="block">A builder for a list of representation variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html#%3Cinit%3E()">VariantListBuilder()</a></span> - Constructor for class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use the static <code>newInstance</code> method to obtain an instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#variants(jakarta.ws.rs.core.Variant...)">variants(Variant...)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a Vary header that lists the available variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/Response.ResponseBuilder.html#variants(java.util.List)">variants(List&lt;Variant&gt;)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a Vary header that lists the available variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#VARY">VARY</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>.</div>
+</dd>
+</dl>
+<a id="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">WebApplicationException</span></a> - Exception in <a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></dt>
+<dd>
+<div class="block">Runtime exception for applications.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E()">WebApplicationException()</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(int)">WebApplicationException(int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">WebApplicationException(Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">WebApplicationException(Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String)">WebApplicationException(String)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,int)">WebApplicationException(String, int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">WebApplicationException(String, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">WebApplicationException(String, Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">WebApplicationException(String, Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,int)">WebApplicationException(String, Throwable, int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException(String, Throwable, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException(String, Throwable, Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable)">WebApplicationException(Throwable)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,int)">WebApplicationException(Throwable, int)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException(Throwable, Response)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException(Throwable, Response.Status)</a></span> - Constructor for exception jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">WebTarget</span></a> - Interface in <a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></dt>
+<dd>
+<div class="block">A resource target identified by the resource URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#WILDCARD">WILDCARD</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#WILDCARD_TYPE">WILDCARD_TYPE</a></span> - Static variable in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="jakarta/ws/rs/core/MediaType.html#WILDCARD">"*/*"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/MediaType.html#withCharset(java.lang.String)">withCharset(String)</a></span> - Method in class jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters copied from the original instance
+ and the supplied <a href="jakarta/ws/rs/core/MediaType.html#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/ClientBuilder.html#withConfig(jakarta.ws.rs.core.Configuration)">withConfig(Configuration)</a></span> - Method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/StreamingOutput.html#write(java.io.OutputStream)">write(OutputStream)</a></span> - Method in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/StreamingOutput.html" title="interface in jakarta.ws.rs.core">StreamingOutput</a></dt>
+<dd>
+<div class="block">Called to write the message body.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Interface for message body writer interceptors that wrap around calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a> - Interface in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context class used by <a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo(T, Class&lt;?&gt;, Type, Annotation[], MediaType, MultivaluedMap&lt;String, Object&gt;, OutputStream)</a></span> - Method in interface jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Write a type to an HTTP message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/core/HttpHeaders.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span> - Static variable in interface jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>.</div>
+</dd>
+</dl>
+<a id="I:X">
+<!--   -->
+</a>
+<h2 class="title">X</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#xhtml(T)">xhtml(T)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="jakarta/ws/rs/client/Entity.html#xml(T)">xml(T)</a></span> - Static method in class jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="jakarta/ws/rs/core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/index.html b/apidocs/3.0.0/index.html
new file mode 100644
index 0000000..3045b0f
--- /dev/null
+++ b/apidocs/3.0.0/index.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Overview (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<div class="header">
+<h1 class="title">Jakarta RESTful Web Services 3.0 API Specification </h1>
+</div>
+<main role="main">
+<div class="contentContainer">
+<div class="block"><p>Jakarta RESTful Web Services provides a foundational API to develop web services
+    following the Representational State Transfer (REST) architectural pattern.
+    This API is distributed under the <a href="resources/EFSL.html">Eclipse Foundation Specification License</a>.</p>
+
+<h1>Web resources</h1>
+
+<p>JAX-RS core APIs enable developers to rapidly build Web applications in Java that are characteristic
+    of the best designed parts of the Web. The API brings in support for designing and implementing
+    Web resources and application that follow principles of
+    <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm">REST (Representational
+        State Transfer)</a> architectural style to the Java Platform.</p>
+
+<p>In JAX-RS, Java POJOs can be exposed as RESTful Web resources independent of the underlying technology
+    using a high level easy-to-use declarative annotation-based API. E.g.:</p>
+
+<pre>
+&#64;Path("widgets/{widgetid}")
+&#64;Consumes("application/widgets+xml")
+&#64;Produces("application/widgets+xml")
+public class WidgetResource {
+
+    &#64;GET
+    public String getWidget(&#64;PathParam("widgetid") String id) {
+        return getWidgetAsXml(id);
+    }
+
+    &#64;PUT
+    public void updateWidget(&#64;PathParam("widgetid") String id,
+                             Source update) {
+       updateWidgetFromXml(id, update);
+    }
+
+    ...
+}
+</pre>
+
+<h1>Web resource clients</h1>
+
+<p>JAX-RS client API is a Java based API used to access resources on the Web. It is not restricted
+    to resources implemented using JAX-RS. It provides a higher-level abstraction compared to a
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>plain HTTP communication API</code></a> as well as integration with the
+    JAX-RS extension providers, in order to enable concise and efficient implementation of
+    reusable client-side solutions that leverage existing and well
+    established client-side implementations of HTTP-based communication.</p>
+
+<p>The JAX-RS Client API also encapsulates the Uniform Interface Constraint &ndash;
+    a key constraint of the REST architectural style &ndash; and associated data
+    elements as client-side Java artifacts and supports a pluggable architecture
+    by defining multiple extension points.</p>
+
+<p>Following example demonstrates a simple JAX-RS client API usage scenario:</p>
+
+<pre>
+    Client client = ClientBuilder.newClient();
+
+    client.property("MyProperty", "MyValue")
+          .register(MyProvider.class)
+          .enable(MyFeature.class);
+
+    Response res = client.target("http://example.org/hello").request("text/plain").get();
+    String message = res.readEntity(String.class);
+ </pre>
+
+<h1>Provider extensions</h1>
+
+<p>JAX-RS applications may provide custom extensions to the client and server runtime using the
+    common extension APIs defined in <a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a>
+    package, namely entity providers and entity provider interceptors. Additionally, request and
+    response processing chains on client as well as server side can be further customized by
+    implemening custom request and response filters - see the
+    <a href="jakarta/ws/rs/client/ClientRequestFilter.html">ClientRequestFilter</a>,
+    <a href="jakarta/ws/rs/client/ClientResponseFilter.html">ClientResponseFilter</a>,
+    <a href="jakarta/ws/rs/container/ContainerRequestFilter.html">ContainerRequestFilter</a>,
+    <a href="jakarta/ws/rs/container/ContainerResponseFilter.html">ContainerResponseFilter</a>
+    APIs.</p></div>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/package-summary.html">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/client/package-summary.html">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/container/package-summary.html">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/core/package-summary.html">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/ext/package-summary.html">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<th class="colFirst" scope="row"><a href="jakarta/ws/rs/sse/package-summary.html">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ApplicationPath.html b/apidocs/3.0.0/jakarta/ws/rs/ApplicationPath.html
new file mode 100644
index 0000000..2397497
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ApplicationPath.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ApplicationPath (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ApplicationPath (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationPath.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type ApplicationPath" class="title">Annotation Type ApplicationPath</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+public @interface <span class="memberNameLabel">ApplicationPath</span></pre>
+<div class="block">Identifies the application path that serves as the base URI for all resource URIs provided by
+ <a href="Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>. May only be applied to a subclass of <a href="core/Application.html" title="class in jakarta.ws.rs.core"><code>Application</code></a>.
+
+ <p>
+ When published in a Servlet container, the value of the application path may be overridden using a servlet-mapping
+ element in the web.xml.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="core/Application.html" title="class in jakarta.ws.rs.core"><code>Application</code></a>, 
+<a href="Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the base URI for all resource URIs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the base URI for all resource URIs. A trailing '/' character will be automatically appended if one is not
+ present.
+
+ <p>
+ The supplied value is automatically percent encoded to conform to the <code>path</code> production of
+ <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>. Note that percent encoded values
+ are allowed in the value, an implementation will recognize such values and will not double encode the '%' character.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>base URI.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationPath.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/BadRequestException.html b/apidocs/3.0.0/jakarta/ws/rs/BadRequestException.html
new file mode 100644
index 0000000..16d980c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/BadRequestException.html
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>BadRequestException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BadRequestException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BadRequestException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class BadRequestException" class="title">Class BadRequestException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.BadRequestException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">BadRequestException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a <a href="core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.BadRequestException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BadRequestException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException()</pre>
+<div class="block">Construct a new bad client request exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BadRequestException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/BeanParam.html b/apidocs/3.0.0/jakarta/ws/rs/BeanParam.html
new file mode 100644
index 0000000..097e9a2
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/BeanParam.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>BeanParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BeanParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BeanParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type BeanParam" class="title">Annotation Type BeanParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">BeanParam</span></pre>
+<div class="block">The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.
+ <p>
+ The JAX-RS runtime will instantiate the object and inject all it's fields and properties annotated with either one of
+ the <code>@XxxParam</code> annotation (<a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>&#64;PathParam</code></a>, <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>&#64;FormParam</code></a> ...) or the
+ <a href="core/Context.html" title="annotation in jakarta.ws.rs.core"><code>&#64;Context</code></a> annotation. For the POJO classes same instantiation and injection rules
+ apply as in case of instantiation and injection of request-scoped root resource classes.
+ </p>
+ For example:
+
+ <PRE>
+ public class MyBean {
+   &#64;FormParam("myData")
+   private String data;
+
+   &#64;HeaderParam("myHeader")
+   private String header;
+
+   &#64;PathParam("id")
+   public void setResourceId(String id) {...}
+
+   ...
+ }
+
+ &#64;Path("myresources")
+ public class MyResources {
+   &#64;POST
+   &#64;Path("{id}")
+   public void post(&#64;BeanParam MyBean myBean) {...}
+
+   ...
+ }
+ </PRE>
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BeanParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ClientErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/ClientErrorException.html
new file mode 100644
index 0000000..a39edfb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ClientErrorException.html
@@ -0,0 +1,620 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class ClientErrorException" class="title">Class ClientErrorException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ClientErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></code>, <code><a href="ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></code>, <code><a href="NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></code>, <code><a href="NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></code>, <code><a href="NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></code>, <code><a href="NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></code>, <code><a href="NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ClientErrorException</span>
+extends <a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.ClientErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ClientErrorException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ConstrainedTo.html b/apidocs/3.0.0/jakarta/ws/rs/ConstrainedTo.html
new file mode 100644
index 0000000..e2452d3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ConstrainedTo.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ConstrainedTo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConstrainedTo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConstrainedTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type ConstrainedTo" class="title">Annotation Type ConstrainedTo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">ConstrainedTo</span></pre>
+<div class="block">Indicates the run-time context in which an annotated JAX-RS provider is applicable. If a <code>@ConstrainedTo</code>
+ annotation is not present on a JAX-RS provider type declaration, the declared provider may be used in any run-time
+ context. If such a annotation is present, the JAX-RS runtime will enforce the specified usage restriction.
+ <p>
+ The following example illustrates restricting a <a href="ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> provider implementation to
+ run only as part of a <a href="RuntimeType.html#CLIENT"><code>JAX-RS client run-time</code></a>:
+ </p>
+
+ <pre>
+  &#064;ConstrainedTo(RuntimeType.CLIENT)
+  public class MyReader implements MessageBodyReader {
+      ...
+  }
+ </pre>
+ <p>
+ The following example illustrates restricting a <a href="ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> provider implementation to
+ run only as part of a <a href="RuntimeType.html#SERVER"><code>JAX-RS server run-time</code></a>:
+ </p>
+
+ <pre>
+  &#064;ConstrainedTo(RuntimeType.SERVER)
+  public class MyWriterInterceptor implements WriterInterceptor {
+      ...
+  }
+ </pre>
+ <p>
+ It is a configuration error to constraint a JAX-RS provider implementation to a run-time context in which the
+ provider cannot be applied. In such case a JAX-RS runtime SHOULD inform a user about the issue and ignore the
+ provider implementation in further processing.
+ </p>
+ <p>
+ For example, the following restriction of a <a href="client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>ClientRequestFilter</code></a> to run only as part of a
+ JAX-RS server run-time would be considered invalid:
+ </p>
+
+ <pre>
+  // reported as invalid and ignored by JAX-RS runtime
+  &#064;ConstrainedTo(RuntimeType.SERVER)
+  public class MyFilter implements ClientRequestFilter {
+      ...
+  }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Define the <a href="RuntimeType.html" title="enum in jakarta.ws.rs"><code>constraint type</code></a> to be placed on a JAX-RS provider.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&nbsp;value</pre>
+<div class="block">Define the <a href="RuntimeType.html" title="enum in jakarta.ws.rs"><code>constraint type</code></a> to be placed on a JAX-RS provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>applicable run-time context.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConstrainedTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/Consumes.html b/apidocs/3.0.0/jakarta/ws/rs/Consumes.html
new file mode 100644
index 0000000..469d88a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/Consumes.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Consumes (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Consumes (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Consumes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type Consumes" class="title">Annotation Type Consumes</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Inherited</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Consumes</span></pre>
+<div class="block">Defines the media types that the methods of a resource class or <a href="ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.
+ If not specified, a container will assume that any media type is acceptable. Method level annotations override a
+ class level annotation. A container is responsible for ensuring that the method invoked is capable of consuming the
+ media type of the HTTP request entity body. If no such method is available the container must respond with a HTTP
+ "415 Unsupported Media Type" as specified by RFC 2616.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">A list of media types.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;value</pre>
+<div class="block">A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any
+ leading or trailing white-spaces in a single type entry being ignored. For example:
+
+ <pre>
+ { "image/jpeg, image/gif ", " image/png" }
+ </pre>
+
+ Use of the comma-separated form allows definition of a common string constant for use on multiple targets.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>media types to accept.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{"*/*"}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Consumes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/CookieParam.html b/apidocs/3.0.0/jakarta/ws/rs/CookieParam.html
new file mode 100644
index 0000000..4674454
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/CookieParam.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>CookieParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CookieParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CookieParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type CookieParam" class="title">Annotation Type CookieParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">CookieParam</span></pre>
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean
+ property. A default value can be specified using the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a> annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Be <a href="core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a></li>
+ <li>Have a constructor that accepts a single String argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single String argument (see, for
+ example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3, 4 or 5 above. The
+ resulting collection is read-only.</li>
+ </ol>
+
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a>, 
+<a href="core/HttpHeaders.html#getCookies()"><code>HttpHeaders.getCookies()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP cookie whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP cookie whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP cookie name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CookieParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/DELETE.html b/apidocs/3.0.0/jakarta/ws/rs/DELETE.html
new file mode 100644
index 0000000..32a8421
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/DELETE.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>DELETE (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DELETE (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DELETE.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type DELETE" class="title">Annotation Type DELETE</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("DELETE")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">DELETE</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DELETE.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/DefaultValue.html b/apidocs/3.0.0/jakarta/ws/rs/DefaultValue.html
new file mode 100644
index 0000000..882818c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/DefaultValue.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>DefaultValue (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultValue (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type DefaultValue" class="title">Annotation Type DefaultValue</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">DefaultValue</span></pre>
+<div class="block">Defines the default value of request meta-data that is bound using one of the following annotations:
+ <a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>,
+ <a href="CookieParam.html" title="annotation in jakarta.ws.rs"><code>CookieParam</code></a>, <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>, or <a href="HeaderParam.html" title="annotation in jakarta.ws.rs"><code>HeaderParam</code></a>. The default value
+ is used if the corresponding meta-data is not present in the request.
+ <p>
+ If the type of the annotated parameter is <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> or
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>SortedSet</code></a> then the resulting collection will have a single entry mapped from the supplied default
+ value.
+ </p>
+ <p>
+ If this annotation is not used and the corresponding meta-data is not present in the request, the value will be an
+ empty collection for <code>List</code>, <code>Set</code> or <code>SortedSet</code>, <code>null</code> for other object types, and the
+ Java-defined default for primitive types.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, 
+<a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, 
+<a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>, 
+<a href="HeaderParam.html" title="annotation in jakarta.ws.rs"><code>HeaderParam</code></a>, 
+<a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>, 
+<a href="CookieParam.html" title="annotation in jakarta.ws.rs"><code>CookieParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">The specified default value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">The specified default value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>default value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/Encoded.html b/apidocs/3.0.0/jakarta/ws/rs/Encoded.html
new file mode 100644
index 0000000..a5baf21
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/Encoded.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Encoded (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoded (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoded.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type Encoded" class="title">Annotation Type Encoded</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#CONSTRUCTOR" title="class or interface in java.lang.annotation" class="externalLink">CONSTRUCTOR</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Encoded</span></pre>
+<div class="block">Disables automatic decoding of parameter values bound using <a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>
+ or <a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>. Using this annotation on a method will disable decoding for all parameters. Using this
+ annotation on a class will disable decoding for all parameters of all methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, 
+<a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>, 
+<a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, 
+<a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoded.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ForbiddenException.html b/apidocs/3.0.0/jakarta/ws/rs/ForbiddenException.html
new file mode 100644
index 0000000..0e465b2
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ForbiddenException.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ForbiddenException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ForbiddenException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ForbiddenException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class ForbiddenException" class="title">Class ForbiddenException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ForbiddenException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ForbiddenException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.ForbiddenException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ForbiddenException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException()</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ForbiddenException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/FormParam.html b/apidocs/3.0.0/jakarta/ws/rs/FormParam.html
new file mode 100644
index 0000000..6b76432
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/FormParam.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>FormParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FormParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FormParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type FormParam" class="title">Annotation Type FormParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">FormParam</span></pre>
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter. Values
+ are URL decoded unless this is disabled using the <a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a> annotation. A default value can be specified using
+ the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a> annotation. If the request entity body is absent or is an unsupported media type, the
+ default value is used.
+
+ The type <code>T</code> of the annotated parameter must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single <code>String</code> argument
+ (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above. The
+ resulting collection is read-only.</li>
+ </ol>
+
+ <p>
+ If the type is not one of the collection types listed in 5 above and the form parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+ </p>
+
+ <p>
+ If this annotation is used to bind form parameters, a JAX-RS implementation MUST use the entity provider API
+ to create a <a href="core/Form.html" title="class in jakarta.ws.rs.core"><code>Form</code></a> and derive the values from this instance. If there is at least one
+ <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a> for a resource method, JAX-RS implementations MUST support a <a href="core/Form.html" title="class in jakarta.ws.rs.core"><code>Form</code></a>
+ entity parameter for the same method. Support for other entity parameter types is OPTIONAL.
+ </p>
+
+ <p>
+ Note that, whilst the annotation target permits use on fields and methods, this annotation is only required to be
+ supported on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the form parameter whose value will be used to initialize the value of the annotated method
+ argument.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the form parameter whose value will be used to initialize the value of the annotated method
+ argument. The name is specified in decoded form, any percent encoded literals within the value will not be decoded
+ and will instead be treated as literal text. E.g. if the parameter name is "a b" then the value of the annotation is
+ "a b", <i>not</i> "a+b" or "a%20b".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>form parameter name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FormParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/GET.html b/apidocs/3.0.0/jakarta/ws/rs/GET.html
new file mode 100644
index 0000000..1f4a16e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/GET.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>GET (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GET (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GET.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type GET" class="title">Annotation Type GET</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("GET")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">GET</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GET.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/HEAD.html b/apidocs/3.0.0/jakarta/ws/rs/HEAD.html
new file mode 100644
index 0000000..2c1006b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/HEAD.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>HEAD (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HEAD (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HEAD.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type HEAD" class="title">Annotation Type HEAD</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("HEAD")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HEAD</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HEAD.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/HeaderParam.html b/apidocs/3.0.0/jakarta/ws/rs/HeaderParam.html
new file mode 100644
index 0000000..383317c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/HeaderParam.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>HeaderParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HeaderParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HeaderParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type HeaderParam" class="title">Annotation Type HeaderParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HeaderParam</span></pre>
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean
+ property. A default value can be specified using the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a> annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single <code>String</code> argument
+ (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above. The
+ resulting collection is read-only.</li>
+ </ol>
+
+ <p>
+ If the type is not one of the collection types listed in 5 above and the header parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+ </p>
+
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/HttpHeaders.html" title="interface in jakarta.ws.rs.core"><code>HttpHeaders</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP header whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP header whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. Case insensitive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP header name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HeaderParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/HttpMethod.html b/apidocs/3.0.0/jakarta/ws/rs/HttpMethod.html
new file mode 100644
index 0000000..023a8fa
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/HttpMethod.html
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>HttpMethod (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HttpMethod (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#annotation.type.field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation.type.field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type HttpMethod" class="title">Annotation Type HttpMethod</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation" class="externalLink">ANNOTATION_TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HttpMethod</span></pre>
+<div class="block">Associates the name of a HTTP method with an annotation. A Java method annotated with a runtime annotation that is
+ itself annotated with this annotation will be used to handle HTTP requests of the indicated HTTP method. It is an
+ error for a method to be annotated with more than one annotation that is annotated with <code>HttpMethod</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="GET.html" title="annotation in jakarta.ws.rs"><code>GET</code></a>, 
+<a href="POST.html" title="annotation in jakarta.ws.rs"><code>POST</code></a>, 
+<a href="PUT.html" title="annotation in jakarta.ws.rs"><code>PUT</code></a>, 
+<a href="DELETE.html" title="annotation in jakarta.ws.rs"><code>DELETE</code></a>, 
+<a href="PATCH.html" title="annotation in jakarta.ws.rs"><code>PATCH</code></a>, 
+<a href="HEAD.html" title="annotation in jakarta.ws.rs"><code>HEAD</code></a>, 
+<a href="OPTIONS.html" title="annotation in jakarta.ws.rs"><code>OPTIONS</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Fields</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DELETE">DELETE</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP DELETE method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#GET">GET</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP GET method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HEAD">HEAD</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP HEAD method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPTIONS">OPTIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP OPTIONS method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PATCH">PATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP PATCH method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#POST">POST</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP POST method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PUT">PUT</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP PUT method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Specifies the name of a HTTP method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="GET">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GET</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;GET</pre>
+<div class="block">HTTP GET method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="POST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POST</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;POST</pre>
+<div class="block">HTTP POST method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="PUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PUT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;PUT</pre>
+<div class="block">HTTP PUT method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="DELETE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;DELETE</pre>
+<div class="block">HTTP DELETE method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="PATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;PATCH</pre>
+<div class="block">HTTP PATCH method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="HEAD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HEAD</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;HEAD</pre>
+<div class="block">HTTP HEAD method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="OPTIONS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OPTIONS</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;OPTIONS</pre>
+<div class="block">HTTP OPTIONS method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Specifies the name of a HTTP method. E.g. "GET".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP method name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#annotation.type.field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation.type.field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/InternalServerErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/InternalServerErrorException.html
new file mode 100644
index 0000000..889c579
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/InternalServerErrorException.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>InternalServerErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InternalServerErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InternalServerErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class InternalServerErrorException" class="title">Class InternalServerErrorException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ServerErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ServerErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.InternalServerErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">InternalServerErrorException</span>
+extends <a href="ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></pre>
+<div class="block">A runtime exception indicating an <a href="core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.InternalServerErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">InternalServerErrorException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException()</pre>
+<div class="block">Construct a new internal server error exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - internal server error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - internal server error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - internal server error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - internal server error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InternalServerErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/MatrixParam.html b/apidocs/3.0.0/jakarta/ws/rs/MatrixParam.html
new file mode 100644
index 0000000..05d2093
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/MatrixParam.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MatrixParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MatrixParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MatrixParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type MatrixParam" class="title">Annotation Type MatrixParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">MatrixParam</span></pre>
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class
+ bean property. Values are URL decoded unless this is disabled using the <a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a> annotation. A default value
+ can be specified using the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a> annotation.
+ <p>
+ Note that the <code>@MatrixParam</code> <a href="#value()"><code>annotation value</code></a> refers to a name of a matrix parameter that
+ resides in the last matched path segment of the <a href="Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated Java structure that injects the value of the
+ matrix parameter.
+ </p>
+ <p>
+ The type <code>T</code> of the annotated parameter, field or property must either:
+ </p>
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single <code>String</code> argument
+ (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above. The
+ resulting collection is read-only.</li>
+ </ol>
+
+ <p>
+ If the type is not one of the collection types listed in 5 above and the matrix parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+ </p>
+
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within
+ the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then
+ the value of the annotation is "a b", <i>not</i> "a+b" or "a%20b".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>URI matrix parameter name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MatrixParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NameBinding.html b/apidocs/3.0.0/jakarta/ws/rs/NameBinding.html
new file mode 100644
index 0000000..e078c1d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NameBinding.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NameBinding (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NameBinding (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NameBinding.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type NameBinding" class="title">Annotation Type NameBinding</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation" class="externalLink">ANNOTATION_TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">NameBinding</span></pre>
+<div class="block">Meta-annotation used to create name binding annotations for filters and interceptors.
+
+ Name binding via annotations is only supported as part of the Server API. In name binding, a <i>name-binding</i>
+ annotation is first defined using the <code>@NameBinding</code> meta-annotation:
+
+ <pre>
+  &#64;Target({ ElementType.TYPE, ElementType.METHOD })
+  &#64;Retention(value = RetentionPolicy.RUNTIME)
+  <b>&#64;NameBinding</b>
+  <b>public @interface Logged</b> { }
+ </pre>
+
+ The defined name-binding annotation is then used to decorate a filter or interceptor class (more than one filter or
+ interceptor may be decorated with the same name-binding annotation):
+
+ <pre>
+  <b>&#64;Logged</b>
+  public class LoggingFilter
+          implements ContainerRequestFilter, ContainerResponseFilter {
+      ...
+  }
+ </pre>
+
+ At last, the name-binding annotation is applied to the resource method(s) to which the name-bound JAX-RS provider(s)
+ should be bound to:
+
+ <pre>
+  &#64;Path("/")
+  public class MyResourceClass {
+      &#64;GET
+      &#64;Produces("text/plain")
+      &#64;Path("{name}")
+      <b>&#64;Logged</b>
+      public String hello(@PathParam("name") String name) {
+          return "Hello " + name;
+      }
+  }
+ </pre>
+
+ A name-binding annotation may also be attached to a custom JAX-RS <a href="core/Application.html" title="class in jakarta.ws.rs.core"><code>Application</code></a> subclass. In
+ such case a name-bound JAX-RS provider bound by the annotation will be applied to all <a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource and
+ sub-resource methods</code></a> in the JAX-RS application:
+
+ <pre>
+  <b>&#64;Logged</b>
+  &#64;ApplicationPath("myApp")
+  public class MyApplication extends jakarta.ws.rs.core.Application {
+      ...
+  }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NameBinding.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NotAcceptableException.html b/apidocs/3.0.0/jakarta/ws/rs/NotAcceptableException.html
new file mode 100644
index 0000000..fb821c0
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NotAcceptableException.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NotAcceptableException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAcceptableException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAcceptableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class NotAcceptableException" class="title">Class NotAcceptableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.NotAcceptableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAcceptableException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that a client request is <a href="core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.NotAcceptableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotAcceptableException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException()</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAcceptableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NotAllowedException.html b/apidocs/3.0.0/jakarta/ws/rs/NotAllowedException.html
new file mode 100644
index 0000000..31968f3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NotAllowedException.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NotAllowedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAllowedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAllowedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class NotAllowedException" class="title">Class NotAllowedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.NotAllowedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAllowedException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.NotAllowedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>allowed</code> - allowed request method.</dd>
+<dd><code>moreAllowed</code> - more allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the allowed method is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>allowed</code> - allowed request method.</dd>
+<dd><code>moreAllowed</code> - more allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the allowed method is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new method not allowed exception.
+ <p>
+ Note that this constructor does not validate the presence of HTTP <code>Allow</code> header. I.e. it is possible to use
+ the constructor to create a client-side exception instance even for an invalid HTTP <code>405</code> response content
+ returned from a server.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>405</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new method not allowed exception.
+ <p>
+ Note that this constructor does not validate the presence of HTTP <code>Allow</code> header. I.e. it is possible to use
+ the constructor to create a client-side exception instance even for an invalid HTTP <code>405</code> response content
+ returned from a server.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>405</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>allowedMethods</code> - allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the allowed methods varargs are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>allowedMethods</code> - allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the allowed methods varargs are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>405</code> or does not
+ contain an HTTP <code>Allow</code> header.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>405</code> or does not
+ contain an HTTP <code>Allow</code> header.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAllowedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NotAuthorizedException.html b/apidocs/3.0.0/jakarta/ws/rs/NotAuthorizedException.html
new file mode 100644
index 0000000..af6ad1a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NotAuthorizedException.html
@@ -0,0 +1,570 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NotAuthorizedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAuthorizedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAuthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class NotAuthorizedException" class="title">Class NotAuthorizedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.NotAuthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAuthorizedException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ <ul>
+ <li>a client did not send the required authorization credentials to access the requested resource, i.e.
+ <a href="core/HttpHeaders.html#AUTHORIZATION"><code>Authorization</code></a> HTTP header is missing in the request,</li>
+ <li>or - in case the request already contains the HTTP <code>Authorization</code> header - then the exception indicates
+ that authorization has been refused for the credentials contained in the request header.</li>
+ </ul></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.NotAuthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChallenges()">getChallenges</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of authorization challenges associated with the exception and applicable to the resource requested by
+ the client.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>challenge</code> - authorization challenge applicable to the resource requested by the client.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the requested resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>challenge</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the resource requested by the client.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the requested resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>challenge</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the requested resource.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the requested resource.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the requested resource.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the requested resource.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getChallenges()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChallenges</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getChallenges()</pre>
+<div class="block">Get the list of authorization challenges associated with the exception and applicable to the resource requested by
+ the client.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of authorization challenges applicable to the resource requested by the client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAuthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NotFoundException.html b/apidocs/3.0.0/jakarta/ws/rs/NotFoundException.html
new file mode 100644
index 0000000..41f6e31
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NotFoundException.html
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NotFoundException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotFoundException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class NotFoundException" class="title">Class NotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.NotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotFoundException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.NotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotFoundException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException()</pre>
+<div class="block">Construct a new "not found" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/NotSupportedException.html b/apidocs/3.0.0/jakarta/ws/rs/NotSupportedException.html
new file mode 100644
index 0000000..d76194f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/NotSupportedException.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NotSupportedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotSupportedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotSupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class NotSupportedException" class="title">Class NotSupportedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.NotSupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotSupportedException</span>
+extends <a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.NotSupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotSupportedException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException()</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotSupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/OPTIONS.html b/apidocs/3.0.0/jakarta/ws/rs/OPTIONS.html
new file mode 100644
index 0000000..793beca
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/OPTIONS.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>OPTIONS (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OPTIONS (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OPTIONS.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type OPTIONS" class="title">Annotation Type OPTIONS</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("OPTIONS")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">OPTIONS</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OPTIONS.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/PATCH.html b/apidocs/3.0.0/jakarta/ws/rs/PATCH.html
new file mode 100644
index 0000000..6330f25
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/PATCH.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>PATCH (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PATCH (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PATCH.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type PATCH" class="title">Annotation Type PATCH</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("PATCH")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PATCH</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PATCH.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/POST.html b/apidocs/3.0.0/jakarta/ws/rs/POST.html
new file mode 100644
index 0000000..e513b9c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/POST.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>POST (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="POST (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/POST.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type POST" class="title">Annotation Type POST</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("POST")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">POST</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/POST.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/PUT.html b/apidocs/3.0.0/jakarta/ws/rs/PUT.html
new file mode 100644
index 0000000..0675f89
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/PUT.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>PUT (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PUT (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PUT.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type PUT" class="title">Annotation Type PUT</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in jakarta.ws.rs">@HttpMethod</a>("PUT")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PUT</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PUT.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/Path.html b/apidocs/3.0.0/jakarta/ws/rs/Path.html
new file mode 100644
index 0000000..f1dc3cd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/Path.html
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Path (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Path (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Path.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type Path" class="title">Annotation Type Path</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Path</span></pre>
+<div class="block">Identifies the URI path that a resource class or class method will serve requests for.
+
+ <p>
+ Paths are relative. For an annotated class the base URI is the application path, see <a href="ApplicationPath.html" title="annotation in jakarta.ws.rs"><code>ApplicationPath</code></a>. For an
+ annotated method the base URI is the effective URI of the containing class. For the purposes of absolutizing a path
+ against the base URI , a leading '/' in a path is ignored and base URIs are treated as if they ended in '/'. E.g.:
+ </p>
+
+ <pre>
+ &#64;Path("widgets")
+ public class WidgetsResource {
+  &#64;GET
+  String getList() {...}
+
+  &#64;GET &#64;Path("{id}")
+  String getWidget(&#64;PathParam("id") String id) {...}
+ }
+ </pre>
+
+ <p>
+ In the above, if the application path is <code>catalogue</code> and the application is deployed at
+ <code>http://example.com/</code>, then <code>GET</code> requests for <code>http://example.com/catalogue/widgets</code> will be
+ handled by the <code>getList</code> method while requests for <code>http://example.com/catalogue/widgets/<i>nnn</i></code>
+ (where <code><i>nnn</i></code> is some value) will be handled by the <code>getWidget</code> method. The same would apply
+ if the value of either <code>@Path</code> annotation started with '/'.
+ </p>
+
+ <p>
+ Classes and methods may also be annotated with <a href="Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a> and <a href="Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a> to filter the requests they will
+ receive.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a>, 
+<a href="Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a>, 
+<a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines a URI template for the resource class or method, must not include matrix parameters.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines a URI template for the resource class or method, must not include matrix parameters.
+
+ <p>
+ Embedded template parameters are allowed and are of the form:
+ </p>
+
+ <pre>
+  param = "{" *WSP name *WSP [ ":" *WSP regex *WSP ] "}"
+ name = (ALPHA / DIGIT / "_")*(ALPHA / DIGIT / "." / "_" / "-" ) ; \w[\w\.-]*
+ regex = *( nonbrace / "{" *nonbrace "}" ) ; where nonbrace is any char other than "{" and "}"
+ </pre>
+
+ <p>
+ See <a href="http://tools.ietf.org/html/rfc5234">RFC 5234</a> for a description of the syntax used above and the
+ expansions of <code>WSP</code>, <code>ALPHA</code> and <code>DIGIT</code>. In the above <code>name</code> is the template parameter name
+ and the optional <code>regex</code> specifies the contents of the capturing group for the parameter. If <code>regex</code> is
+ not supplied then a default value of <code>[^/]+</code> which terminates at a path segment boundary, is used. Matching of
+ request URIs to URI templates is performed against encoded path values and implementations will not escape literal
+ characters in regex automatically, therefore any literals in <code>regex</code> should be escaped by the author according
+ to the rules of <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>. Caution is
+ recommended in the use of <code>regex</code>, incorrect use can lead to a template parameter matching unexpected URI
+ paths. See <a href="http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html">Pattern</a> for
+ further information on the syntax of regular expressions. Values of template parameters may be extracted using
+ <a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>.
+ </p>
+
+ <p>
+ The literal part of the supplied value (those characters that are not part of a template parameter) is automatically
+ percent encoded to conform to the <code>path</code> production of
+ <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>. Note that percent encoded values
+ are allowed in the literal part of the value, an implementation will recognize such values and will not double encode
+ the '%' character.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>URI template.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Path.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/PathParam.html b/apidocs/3.0.0/jakarta/ws/rs/PathParam.html
new file mode 100644
index 0000000..f6be0ef
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/PathParam.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>PathParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type PathParam" class="title">Annotation Type PathParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PathParam</span></pre>
+<div class="block">Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property. The value is URL decoded unless this is disabled
+ using the <a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>&#64;Encoded</code></a> annotation. A default value can be specified using the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>&#64;DefaultValue</code></a> annotation.
+
+ The type of the annotated parameter, field or property must either:
+ <ul>
+ <li>Be <a href="core/PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>, the value will be the final segment of the matching part of the path.
+ See <a href="core/UriInfo.html" title="interface in jakarta.ws.rs.core"><code>UriInfo</code></a> for a means of retrieving all request path segments.</li>
+ <li>Be <code>List&lt;jakarta.ws.rs.core.PathSegment&gt;</code>, the value will be a list of <code>PathSegment</code> corresponding to
+ the path segment(s) that matched the named template parameter. See <a href="core/UriInfo.html" title="interface in jakarta.ws.rs.core"><code>UriInfo</code></a> for a means of
+ retrieving all request path segments.</li>
+ <li>Be a primitive type.</li>
+ <li>Have a constructor that accepts a single String argument.</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single String argument (see, for
+ example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>).</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ </ul>
+
+ <p>
+ The injected value corresponds to the latest use (in terms of scope) of the path parameter. E.g. if a class and a
+ sub-resource method are both annotated with a <a href="Path.html" title="annotation in jakarta.ws.rs"><code>&#64;Path</code></a> containing the same URI template parameter, use
+ of <code>@PathParam</code> on a sub-resource method parameter will bind the value matching URI template parameter in the
+ method's <code>@Path</code> annotation.
+ </p>
+
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a>, 
+<a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="core/UriInfo.html" title="interface in jakarta.ws.rs.core"><code>UriInfo</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property. See <a href="Path.html#value()"><code>Path.value()</code></a> for a description of the syntax of template
+ parameters.
+
+ <p>
+ E.g. a class annotated with: <code>@Path("widgets/{id}")</code> can have methods annotated whose arguments are annotated
+ with <code>@PathParam("id")</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource URI template parameter name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/Priorities.html b/apidocs/3.0.0/jakarta/ws/rs/Priorities.html
new file mode 100644
index 0000000..c9c32ae
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/Priorities.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Priorities (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Priorities (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Priorities.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class Priorities" class="title">Class Priorities</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.Priorities</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">Priorities</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ <code>jakarta.annotation.Priority</code> class-level annotation value when used or applied by JAX-RS runtime.
+ <p>
+ For example, JAX-RS filters and interceptors are grouped in chains for each of the message processing extension
+ points: Pre, PreMatch, Post as well as ReadFrom and WriteTo. Each of these chains is sorted based on priorities which
+ are represented as integer numbers. All chains, except Post, are sorted in ascending order; the lower the number the
+ higher the priority. The Post filter chain is sorted in descending order to ensure that response filters are executed
+ in <em>reverse order</em>.
+ </p>
+ <p>
+ JAX-RS components that belong to the same priority class (same integer value) are executed in an
+ implementation-defined manner. By default, when the <code>@Priority</code> annotation is absent on a component, for which
+ a priority should be applied, the <a href="#USER"><code>USER</code></a> priority value is used.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION">AUTHENTICATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Security authentication filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHORIZATION">AUTHORIZATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Security authorization filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENTITY_CODER">ENTITY_CODER</a></span></code></th>
+<td class="colLast">
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HEADER_DECORATOR">HEADER_DECORATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Header decorator filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#USER">USER</a></span></code></th>
+<td class="colLast">
+<div class="block">User-level filter/interceptor priority.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="AUTHENTICATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION</h4>
+<pre>public static final&nbsp;int AUTHENTICATION</pre>
+<div class="block">Security authentication filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#jakarta.ws.rs.Priorities.AUTHENTICATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTHORIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORIZATION</h4>
+<pre>public static final&nbsp;int AUTHORIZATION</pre>
+<div class="block">Security authorization filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#jakarta.ws.rs.Priorities.AUTHORIZATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="HEADER_DECORATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HEADER_DECORATOR</h4>
+<pre>public static final&nbsp;int HEADER_DECORATOR</pre>
+<div class="block">Header decorator filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#jakarta.ws.rs.Priorities.HEADER_DECORATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ENTITY_CODER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENTITY_CODER</h4>
+<pre>public static final&nbsp;int ENTITY_CODER</pre>
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#jakarta.ws.rs.Priorities.ENTITY_CODER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="USER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>USER</h4>
+<pre>public static final&nbsp;int USER</pre>
+<div class="block">User-level filter/interceptor priority.
+
+ This value is also used as a default priority for application-supplied providers.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#jakarta.ws.rs.Priorities.USER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Priorities.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ProcessingException.html b/apidocs/3.0.0/jakarta/ws/rs/ProcessingException.html
new file mode 100644
index 0000000..409c590
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ProcessingException.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ProcessingException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProcessingException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProcessingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class ProcessingException" class="title">Class ProcessingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ProcessingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ProcessingException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">A base JAX-RS runtime processing exception.
+
+ The exception of this type is thrown during HTTP request or response processing, to signal a runtime processing
+ failure. Typical classes of failures covered by <code>ProcessingException</code> include
+ <ul>
+ <li>failures in filter or interceptor chain execution,</li>
+ <li>errors caused by missing message body readers or writers for the particular Java type and media type
+ combinations,</li>
+ <li>propagated <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>IO exceptions</code></a> thrown by entity <a href="ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>readers</code></a> and <a href="ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>writers</code></a> during entity serialization and de-serialization.</li>
+ </ul>
+ as well as any other JAX-RS runtime processing errors. The exception message or nested <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> cause SHOULD
+ contain additional information about the reason of the processing failure.
+ <p>
+ Note that the exception is used to indicate (internal) JAX-RS processing errors. It is not used to indicate HTTP
+ error response states. A HTTP error response is represented by a <a href="WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> class or
+ one of it's sub-classes.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.ProcessingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">
+ Constructs a new JAX-RS runtime processing exception with the specified detail message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ <code>(cause==null ? null : cause.toString())</code> (which typically contains the class and detail message of
+ <code>cause</code>).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ <code>(cause==null ? null : cause.toString())</code> (which typically contains the class and detail message of
+ <code>cause</code>). This constructor is useful for runtime exceptions that are little more than wrappers for other
+ throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value
+ is permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block"><p>
+ Constructs a new JAX-RS runtime processing exception with the specified detail message and cause.
+ </p>
+ Note that the detail message associated with <code>cause</code> is <i>not</i> automatically incorporated in this runtime
+ exception's detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value
+ is permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized,
+ and may subsequently be initialized by a call to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink"><code>Throwable.initCause(java.lang.Throwable)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProcessingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/Produces.html b/apidocs/3.0.0/jakarta/ws/rs/Produces.html
new file mode 100644
index 0000000..6f6634a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/Produces.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Produces (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Produces (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Produces.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type Produces" class="title">Annotation Type Produces</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Inherited</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Produces</span></pre>
+<div class="block">Defines the media type(s) that the methods of a resource class or <a href="ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> can
+ produce. If not specified then a container will assume that any type can be produced. Method level annotations
+ override a class level annotation. A container is responsible for ensuring that the method invoked is capable of
+ producing one of the media types requested in the HTTP request. If no such method is available the container must
+ respond with a HTTP "406 Not Acceptable" as specified by RFC 2616.
+
+ <p>
+ A method for which there is a single-valued <code>@Produces</code> is not required to set the media type of
+ representations that it produces: the container will use the value of the <code>@Produces</code> when sending a response.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">A list of media types.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;value</pre>
+<div class="block">A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any
+ leading or trailing white-spaces in a single type entry being ignored. For example:
+
+ <pre>
+ { "image/jpeg, image/gif ", " image/png" }
+ </pre>
+
+ Use of the comma-separated form allows definition of a common string constant for use on multiple targets.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>media types to accept.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{"*/*"}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Produces.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/QueryParam.html b/apidocs/3.0.0/jakarta/ws/rs/QueryParam.html
new file mode 100644
index 0000000..3ca271e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/QueryParam.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>QueryParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="QueryParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/QueryParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Annotation Type QueryParam" class="title">Annotation Type QueryParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">QueryParam</span></pre>
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class
+ bean property. Values are URL decoded unless this is disabled using the <a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a> annotation. A default value
+ can be specified using the <a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a> annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code> that accepts a single <code>String</code> argument
+ (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> JAX-RS extension SPI that
+ returns a <a href="ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above. The
+ resulting collection is read-only.</li>
+ </ol>
+
+ <p>
+ If the type is not one of the collection types listed in 5 above and the query parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+ </p>
+
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a>, 
+<a href="core/UriInfo.html#getQueryParameters()"><code>UriInfo.getQueryParameters()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within
+ the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then
+ the value of the annotation is "a b", <i>not</i> "a+b" or "a%20b".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP query parameter name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/QueryParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/RedirectionException.html b/apidocs/3.0.0/jakarta/ws/rs/RedirectionException.html
new file mode 100644
index 0000000..e043728
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/RedirectionException.html
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RedirectionException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RedirectionException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class RedirectionException" class="title">Class RedirectionException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.RedirectionException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">RedirectionException</span>
+extends <a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">A runtime application exception indicating a request redirection (HTTP <code>3xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.RedirectionException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.net.URI)">RedirectionException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the redirection response location.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - redirection response. Must have a status code set to a <code>3xx</code> redirection code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - redirection response. Must have a status code set to a <code>3xx</code> redirection code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the redirection response location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>redirection response location.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/RuntimeType.html b/apidocs/3.0.0/jakarta/ws/rs/RuntimeType.html
new file mode 100644
index 0000000..2011c54
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/RuntimeType.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RuntimeType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Enum RuntimeType" class="title">Enum RuntimeType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.RuntimeType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public enum <span class="typeNameLabel">RuntimeType</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&gt;</pre>
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLIENT">CLIENT</a></span></code></th>
+<td class="colLast">
+<div class="block">JAX-RS client run-time.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVER">SERVER</a></span></code></th>
+<td class="colLast">
+<div class="block">JAX-RS server run-time.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="CLIENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT</h4>
+<pre>public static final&nbsp;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a> CLIENT</pre>
+<div class="block">JAX-RS client run-time.</div>
+</li>
+</ul>
+<a id="SERVER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SERVER</h4>
+<pre>public static final&nbsp;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a> SERVER</pre>
+<div class="block">JAX-RS server run-time.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RuntimeType c : RuntimeType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ServerErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/ServerErrorException.html
new file mode 100644
index 0000000..6917056
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ServerErrorException.html
@@ -0,0 +1,620 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ServerErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class ServerErrorException" class="title">Class ServerErrorException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ServerErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></code>, <code><a href="ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ServerErrorException</span>
+extends <a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.ServerErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ServerErrorException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or if it is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+ <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerErrorException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ServiceUnavailableException.html b/apidocs/3.0.0/jakarta/ws/rs/ServiceUnavailableException.html
new file mode 100644
index 0000000..63b3843
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ServiceUnavailableException.html
@@ -0,0 +1,721 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ServiceUnavailableException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceUnavailableException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class ServiceUnavailableException" class="title">Class ServiceUnavailableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ServerErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ServerErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ServiceUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ServiceUnavailableException</span>
+extends <a href="ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></pre>
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.ServiceUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ServiceUnavailableException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Long)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Long,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Long)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Date)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Date)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Date,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRetryTime(java.util.Date)">getRetryTime</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;requestTime)</code></th>
+<td class="colLast">
+<div class="block">Get the retry time for the failed request.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasRetryAfter()">hasRetryAfter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the underlying response contains the information on when is it possible to <a href="core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException()</pre>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed
+ request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Date,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Date,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Long,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Long,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="hasRetryAfter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasRetryAfter</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;hasRetryAfter()</pre>
+<div class="block">Check if the underlying response contains the information on when is it possible to <a href="core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> in case the retry time is specified in the underlying response, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRetryTime(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRetryTime</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getRetryTime&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;requestTime)</pre>
+<div class="block">Get the retry time for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestTime</code> - time of sending the original request that may be used to compute the retry time (in case the retry
+ time information specified as a decimal interval in seconds).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>time when the request may be retried or <code>null</code> if there is no retry information available.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>requestTime</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/WebApplicationException.html b/apidocs/3.0.0/jakarta/ws/rs/WebApplicationException.html
new file mode 100644
index 0000000..1544e81
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/WebApplicationException.html
@@ -0,0 +1,746 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>WebApplicationException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebApplicationException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebApplicationException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs</a></div>
+<h2 title="Class WebApplicationException" class="title">Class WebApplicationException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.WebApplicationException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></code>, <code><a href="RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></code>, <code><a href="ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">WebApplicationException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">Runtime exception for applications.
+ <p>
+ This exception may be thrown by a resource method, provider or <a href="core/StreamingOutput.html" title="interface in jakarta.ws.rs.core"><code>StreamingOutput</code></a>
+ implementation if a specific HTTP error response needs to be produced. Only effective if thrown prior to the response
+ being committed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#jakarta.ws.rs.WebApplicationException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">WebApplicationException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">WebApplicationException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException()</pre>
+<div class="block">Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance using the supplied message and response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code></dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResponse()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResponse</h4>
+<pre class="methodSignature">public&nbsp;<a href="core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;getResponse()</pre>
+<div class="block">Get the HTTP response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP response.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebApplicationException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ApplicationPath.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ApplicationPath.html
new file mode 100644
index 0000000..9f947d4
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ApplicationPath.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ApplicationPath (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ApplicationPath (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationPath.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ApplicationPath" class="title">Uses of Class<br>jakarta.ws.rs.ApplicationPath</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ApplicationPath</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationPath.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/BadRequestException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/BadRequestException.html
new file mode 100644
index 0000000..2b98172
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/BadRequestException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.BadRequestException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.BadRequestException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BadRequestException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.BadRequestException" class="title">Uses of Class<br>jakarta.ws.rs.BadRequestException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.BadRequestException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BadRequestException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/BeanParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/BeanParam.html
new file mode 100644
index 0000000..524ad02
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/BeanParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.BeanParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.BeanParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BeanParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.BeanParam" class="title">Uses of Class<br>jakarta.ws.rs.BeanParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.BeanParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BeanParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ClientErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ClientErrorException.html
new file mode 100644
index 0000000..383a7aa
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ClientErrorException.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ClientErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ClientErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ClientErrorException" class="title">Uses of Class<br>jakarta.ws.rs.ClientErrorException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="../core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="../core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is <a href="../core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="../core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ 
+ a client did not send the required authorization credentials to access the requested resource, i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="../core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="../core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ConstrainedTo.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ConstrainedTo.html
new file mode 100644
index 0000000..44e3995
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ConstrainedTo.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ConstrainedTo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ConstrainedTo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConstrainedTo.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ConstrainedTo" class="title">Uses of Class<br>jakarta.ws.rs.ConstrainedTo</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ConstrainedTo</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConstrainedTo.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/Consumes.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/Consumes.html
new file mode 100644
index 0000000..cbc3510
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/Consumes.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.Consumes (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.Consumes (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Consumes.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.Consumes" class="title">Uses of Class<br>jakarta.ws.rs.Consumes</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.Consumes</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Consumes.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/CookieParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/CookieParam.html
new file mode 100644
index 0000000..196b6dd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/CookieParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.CookieParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.CookieParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CookieParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.CookieParam" class="title">Uses of Class<br>jakarta.ws.rs.CookieParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.CookieParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CookieParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/DELETE.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/DELETE.html
new file mode 100644
index 0000000..b96fdab
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/DELETE.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.DELETE (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.DELETE (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DELETE.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.DELETE" class="title">Uses of Class<br>jakarta.ws.rs.DELETE</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.DELETE</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DELETE.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/DefaultValue.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/DefaultValue.html
new file mode 100644
index 0000000..c05c578
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/DefaultValue.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.DefaultValue (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.DefaultValue (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultValue.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.DefaultValue" class="title">Uses of Class<br>jakarta.ws.rs.DefaultValue</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.DefaultValue</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultValue.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/Encoded.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/Encoded.html
new file mode 100644
index 0000000..4cab486
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/Encoded.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.Encoded (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.Encoded (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoded.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.Encoded" class="title">Uses of Class<br>jakarta.ws.rs.Encoded</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.Encoded</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoded.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ForbiddenException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ForbiddenException.html
new file mode 100644
index 0000000..80c609f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ForbiddenException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ForbiddenException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ForbiddenException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ForbiddenException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ForbiddenException" class="title">Uses of Class<br>jakarta.ws.rs.ForbiddenException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ForbiddenException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ForbiddenException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/FormParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/FormParam.html
new file mode 100644
index 0000000..ecc50e4
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/FormParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.FormParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.FormParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FormParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.FormParam" class="title">Uses of Class<br>jakarta.ws.rs.FormParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.FormParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FormParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/GET.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/GET.html
new file mode 100644
index 0000000..b027cf9
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/GET.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.GET (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.GET (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GET.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.GET" class="title">Uses of Class<br>jakarta.ws.rs.GET</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.GET</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GET.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/HEAD.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/HEAD.html
new file mode 100644
index 0000000..4159e5e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/HEAD.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.HEAD (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.HEAD (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HEAD.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.HEAD" class="title">Uses of Class<br>jakarta.ws.rs.HEAD</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.HEAD</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HEAD.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/HeaderParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/HeaderParam.html
new file mode 100644
index 0000000..01a88e7
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/HeaderParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.HeaderParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.HeaderParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HeaderParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.HeaderParam" class="title">Uses of Class<br>jakarta.ws.rs.HeaderParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.HeaderParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HeaderParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/HttpMethod.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/HttpMethod.html
new file mode 100644
index 0000000..4deea25
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/HttpMethod.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.HttpMethod (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.HttpMethod (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.HttpMethod" class="title">Uses of Class<br>jakarta.ws.rs.HttpMethod</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a> in <a href="../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">jakarta.ws.rs</a> with annotations of type <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DELETE.html" title="annotation in jakarta.ws.rs">DELETE</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../GET.html" title="annotation in jakarta.ws.rs">GET</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../HEAD.html" title="annotation in jakarta.ws.rs">HEAD</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../OPTIONS.html" title="annotation in jakarta.ws.rs">OPTIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PATCH.html" title="annotation in jakarta.ws.rs">PATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../POST.html" title="annotation in jakarta.ws.rs">POST</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PUT.html" title="annotation in jakarta.ws.rs">PUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/InternalServerErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/InternalServerErrorException.html
new file mode 100644
index 0000000..980523a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/InternalServerErrorException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.InternalServerErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.InternalServerErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InternalServerErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.InternalServerErrorException" class="title">Uses of Class<br>jakarta.ws.rs.InternalServerErrorException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.InternalServerErrorException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InternalServerErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/MatrixParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/MatrixParam.html
new file mode 100644
index 0000000..c8cfad7
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/MatrixParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.MatrixParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.MatrixParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MatrixParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.MatrixParam" class="title">Uses of Class<br>jakarta.ws.rs.MatrixParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.MatrixParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MatrixParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NameBinding.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NameBinding.html
new file mode 100644
index 0000000..eff9554
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NameBinding.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NameBinding (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NameBinding (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NameBinding.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NameBinding" class="title">Uses of Class<br>jakarta.ws.rs.NameBinding</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NameBinding</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NameBinding.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAcceptableException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAcceptableException.html
new file mode 100644
index 0000000..80c473e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAcceptableException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NotAcceptableException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NotAcceptableException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAcceptableException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NotAcceptableException" class="title">Uses of Class<br>jakarta.ws.rs.NotAcceptableException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NotAcceptableException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAcceptableException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAllowedException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAllowedException.html
new file mode 100644
index 0000000..c158bfb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAllowedException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NotAllowedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NotAllowedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAllowedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NotAllowedException" class="title">Uses of Class<br>jakarta.ws.rs.NotAllowedException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NotAllowedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAllowedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAuthorizedException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAuthorizedException.html
new file mode 100644
index 0000000..e3fcf99
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotAuthorizedException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NotAuthorizedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NotAuthorizedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAuthorizedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NotAuthorizedException" class="title">Uses of Class<br>jakarta.ws.rs.NotAuthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NotAuthorizedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAuthorizedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NotFoundException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotFoundException.html
new file mode 100644
index 0000000..10138dc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotFoundException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NotFoundException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NotFoundException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotFoundException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NotFoundException" class="title">Uses of Class<br>jakarta.ws.rs.NotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NotFoundException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotFoundException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/NotSupportedException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotSupportedException.html
new file mode 100644
index 0000000..edefe8d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/NotSupportedException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.NotSupportedException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.NotSupportedException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotSupportedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.NotSupportedException" class="title">Uses of Class<br>jakarta.ws.rs.NotSupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.NotSupportedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotSupportedException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/OPTIONS.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/OPTIONS.html
new file mode 100644
index 0000000..5da87ae
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/OPTIONS.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.OPTIONS (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.OPTIONS (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OPTIONS.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.OPTIONS" class="title">Uses of Class<br>jakarta.ws.rs.OPTIONS</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.OPTIONS</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OPTIONS.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/PATCH.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/PATCH.html
new file mode 100644
index 0000000..db69c2b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/PATCH.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.PATCH (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.PATCH (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PATCH.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.PATCH" class="title">Uses of Class<br>jakarta.ws.rs.PATCH</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.PATCH</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PATCH.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/POST.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/POST.html
new file mode 100644
index 0000000..e66a7b1
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/POST.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.POST (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.POST (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../POST.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.POST" class="title">Uses of Class<br>jakarta.ws.rs.POST</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.POST</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../POST.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/PUT.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/PUT.html
new file mode 100644
index 0000000..89e092f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/PUT.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.PUT (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.PUT (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PUT.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.PUT" class="title">Uses of Class<br>jakarta.ws.rs.PUT</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.PUT</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PUT.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/Path.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/Path.html
new file mode 100644
index 0000000..f9c9b5f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/Path.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.Path (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.Path (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Path.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.Path" class="title">Uses of Class<br>jakarta.ws.rs.Path</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.Path</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Path.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/PathParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/PathParam.html
new file mode 100644
index 0000000..c2fe07e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/PathParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.PathParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.PathParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.PathParam" class="title">Uses of Class<br>jakarta.ws.rs.PathParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.PathParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/Priorities.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/Priorities.html
new file mode 100644
index 0000000..9e41925
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/Priorities.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.Priorities (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.Priorities (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Priorities.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.Priorities" class="title">Uses of Class<br>jakarta.ws.rs.Priorities</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.Priorities</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Priorities.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ProcessingException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ProcessingException.html
new file mode 100644
index 0000000..197e66c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ProcessingException.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ProcessingException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ProcessingException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProcessingException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ProcessingException" class="title">Uses of Class<br>jakarta.ws.rs.ProcessingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a> in <a href="../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a> in <a href="../client/package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></span></code></th>
+<td class="colLast">
+<div class="block">JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProcessingException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/Produces.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/Produces.html
new file mode 100644
index 0000000..e6faf50
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/Produces.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.Produces (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.Produces (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Produces.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.Produces" class="title">Uses of Class<br>jakarta.ws.rs.Produces</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.Produces</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Produces.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/QueryParam.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/QueryParam.html
new file mode 100644
index 0000000..5864e2b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/QueryParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.QueryParam (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.QueryParam (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../QueryParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.QueryParam" class="title">Uses of Class<br>jakarta.ws.rs.QueryParam</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.QueryParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../QueryParam.html" title="annotation in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/RedirectionException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/RedirectionException.html
new file mode 100644
index 0000000..2e68972
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/RedirectionException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.RedirectionException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.RedirectionException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectionException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.RedirectionException" class="title">Uses of Class<br>jakarta.ws.rs.RedirectionException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.RedirectionException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectionException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/RuntimeType.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/RuntimeType.html
new file mode 100644
index 0000000..df3a178
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/RuntimeType.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.RuntimeType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.RuntimeType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.RuntimeType" class="title">Uses of Class<br>jakarta.ws.rs.RuntimeType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a> in <a href="../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs</a> that return <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ConstrainedTo.html#value()">value</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Define the <a href="../RuntimeType.html" title="enum in jakarta.ws.rs"><code>constraint type</code></a> to be placed on a JAX-RS provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeType.</span><code><span class="memberNameLink"><a href="../RuntimeType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeType.</span><code><span class="memberNameLink"><a href="../RuntimeType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a> in <a href="../core/package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../core/package-summary.html">jakarta.ws.rs.core</a> that return <a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../core/Configuration.html#getRuntimeType()">getRuntimeType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the runtime type of this configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ServerErrorException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ServerErrorException.html
new file mode 100644
index 0000000..a8bacb9
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ServerErrorException.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ServerErrorException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ServerErrorException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ServerErrorException" class="title">Uses of Class<br>jakarta.ws.rs.ServerErrorException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerErrorException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/ServiceUnavailableException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/ServiceUnavailableException.html
new file mode 100644
index 0000000..ca11ace
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/ServiceUnavailableException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ServiceUnavailableException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ServiceUnavailableException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceUnavailableException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ServiceUnavailableException" class="title">Uses of Class<br>jakarta.ws.rs.ServiceUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ServiceUnavailableException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceUnavailableException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/class-use/WebApplicationException.html b/apidocs/3.0.0/jakarta/ws/rs/class-use/WebApplicationException.html
new file mode 100644
index 0000000..98e726c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/class-use/WebApplicationException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.WebApplicationException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.WebApplicationException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.WebApplicationException" class="title">Uses of Class<br>jakarta.ws.rs.WebApplicationException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> in <a href="../package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="../core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="../core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is <a href="../core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="../core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ 
+ a client did not send the required authorization credentials to access the requested resource, i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="../core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="../core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime application exception indicating a request redirection (HTTP <code>3xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> in <a href="../core/package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../core/package-summary.html">jakarta.ws.rs.core</a> that throw <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">StreamingOutput.</span><code><span class="memberNameLink"><a href="../core/StreamingOutput.html#write(java.io.OutputStream)">write</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)</code></th>
+<td class="colLast">
+<div class="block">Called to write the message body.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> in <a href="../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../ext/package-summary.html">jakarta.ws.rs.ext</a> that throw <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptor.</span><code><span class="memberNameLink"><a href="../ext/ReaderInterceptor.html#aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="../ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptor.</span><code><span class="memberNameLink"><a href="../ext/WriterInterceptor.html#aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="../ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptorContext.</span><code><span class="memberNameLink"><a href="../ext/ReaderInterceptorContext.html#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptorContext.</span><code><span class="memberNameLink"><a href="../ext/WriterInterceptorContext.html#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/AsyncInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/AsyncInvoker.html
new file mode 100644
index 0000000..fe806c5
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/AsyncInvoker.html
@@ -0,0 +1,1367 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>AsyncInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AsyncInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface AsyncInvoker" class="title">Interface AsyncInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">AsyncInvoker</span></pre>
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(jakarta.ws.rs.client.InvocationCallback)">delete</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(jakarta.ws.rs.client.InvocationCallback)">get</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head(jakarta.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(jakarta.ws.rs.client.InvocationCallback)">options</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(jakarta.ws.rs.client.InvocationCallback)">trace</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. Note that in case a processing of a properly received response fails,
+ the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the invocation processing has failed.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;head&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                        <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ thrown in case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses
+ thrown in case the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/Client.html b/apidocs/3.0.0/jakarta/ws/rs/client/Client.html
new file mode 100644
index 0000000..c32b2e9
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/Client.html
@@ -0,0 +1,463 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Client (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Client (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Client.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface Client" class="title">Interface Client</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Client</span>
+extends <a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&gt;</pre>
+<div class="block"><p>
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.
+ </p>
+ Clients are heavy-weight objects that manage the client-side communication infrastructure. Initialization as well as
+ disposal of a <code>Client</code> instance may be a rather expensive operation. It is therefore advised to construct only
+ a small number of <code>Client</code> instances in the application. Client instances must be <a href="#close()"><code>properly
+ closed</code></a> before being disposed to avoid leaking resources.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core"><code>Configurable</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ Close client instance and all it's associated resources.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHostnameVerifier()">getHostnameVerifier</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case no hostname verifier has been configured.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSslContext()">getSslContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invocation(jakarta.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">
+ Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(jakarta.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(jakarta.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(java.lang.String)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(java.net.URI)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.core.<a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block"><p>
+ Close client instance and all it's associated resources. Subsequent calls have no effect and are ignored. Once the
+ client is closed, invoking any other method on the client instance would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>
+ being thrown.
+ </p>
+ Calling this method effectively invalidates all <a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><code>resource targets</code></a> produced by the client instance.
+ Invoking any method on such targets once the client is closed would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being
+ thrown.</div>
+</li>
+</ul>
+<a id="target(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - web resource URI. May contain template parameters. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the supplied string is not a valid URI template.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - web resource URI. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(jakarta.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - web resource URI represented as URI builder. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - link to a web resource. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the linked web resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="invocation(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invocation</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;invocation&#8203;(<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block"><p>
+ Build an invocation builder from a link. It uses the URI and the type of the link to initialize the invocation
+ builder. The type is used as the initial value for the HTTP Accept header, if present.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - link to build invocation from. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly created invocation builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case link is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSslContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSslContext</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;getSslContext()</pre>
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>SSL context configured to be used with the current client run-time.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHostnameVerifier()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHostnameVerifier</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;getHostnameVerifier()</pre>
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case no hostname verifier has been configured.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client hostname verifier or <code>null</code> if not set.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Client.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ClientBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/client/ClientBuilder.html
new file mode 100644
index 0000000..7d1e9fc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ClientBuilder.html
@@ -0,0 +1,803 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":10,"i6":9,"i7":9,"i8":9,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Class ClientBuilder" class="title">Class ClientBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.client.ClientBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ClientBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&gt;</pre>
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client"><code>ClientBuilder</code></a> implementation to be returned from
+ <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClientBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a new client instance using all the configuration previously specified in this client builder.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout</a></span>&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the connect timeout.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#executorService(java.util.concurrent.ExecutorService)">executorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</code></th>
+<td class="colLast">
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification
+ information.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyStore(java.security.KeyStore,char%5B%5D)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        char[]&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyStore(java.security.KeyStore,java.lang.String)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder implementation class provided by the
+ JAX-RS implementation provider.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newClient()">newClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided by the JAX-RS
+ implementation provider.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newClient(jakarta.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided
+ by the JAX-RS implementation provider.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout</a></span>&#8203;(long&nbsp;timeout,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the read timeout.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sslContext(javax.net.ssl.SSLContext)">sslContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</code></th>
+<td class="colLast">
+<div class="block">Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ <a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web targets</code></a> created by the client instance that is using this SSL context.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trustStore(java.security.KeyStore)">trustStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side trust store.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withConfig(jakarta.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.core.<a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client"><code>ClientBuilder</code></a> implementation to be returned from
+ <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.client.ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientBuilder</h4>
+<pre>protected&nbsp;ClientBuilder()</pre>
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;newBuilder()</pre>
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder implementation class provided by the
+ JAX-RS implementation provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="newClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&nbsp;newClient()</pre>
+<div class="block">Create a new <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided by the JAX-RS
+ implementation provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new client instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="newClient(jakarta.ws.rs.core.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&nbsp;newClient&#8203;(<a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;configuration)</pre>
+<div class="block">Create a new custom-configured <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided
+ by the JAX-RS implementation provider.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - data used to provide initial configuration for the new client instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new configured client instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="withConfig(jakarta.ws.rs.core.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withConfig</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;withConfig&#8203;(<a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;config)</pre>
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - external configuration state to replace the configuration of this configurable instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="sslContext(javax.net.ssl.SSLContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sslContext</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;sslContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</pre>
+<div class="block">Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ <a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web targets</code></a> created by the client instance that is using this SSL context. The SSL context is
+ expected to have all the security infrastructure initialized, including the key and trust managers.
+ <p>
+ Setting a SSL context instance resets any <a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>key store</code></a> or
+ <a href="#trustStore(java.security.KeyStore)"><code>trust store</code></a> values previously specified.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContext</code> - secure socket protocol implementation which acts as a factory for secure socket factories or
+ <a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLEngine.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink"><code>SSL engines</code></a>. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>sslContext</code> parameter is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="keyStore(java.security.KeyStore,char[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyStore</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;keyStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+                                       char[]&nbsp;password)</pre>
+<div class="block">Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+ <p>
+ Setting a key store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a> value
+ previously specified.
+ </p>
+ <p>
+ Note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client
+ certificate authentication).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStore</code> - client-side key store. Must not be <code>null</code>.</dd>
+<dd><code>password</code> - client key password. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the supplied parameters is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="keyStore(java.security.KeyStore,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyStore</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;keyStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</pre>
+<div class="block">Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+ <p>
+ Setting a key store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a> value
+ previously specified.
+ </p>
+ <p>
+ Note that for improved security of working with password data and avoid storing passwords in Java string objects, the
+ <a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a> version of the method can be utilized. Also note that a custom key
+ store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate
+ authentication).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStore</code> - client-side key store. Must not be <code>null</code>.</dd>
+<dd><code>password</code> - client key password. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the supplied parameters is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="trustStore(java.security.KeyStore)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trustStore</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;trustStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</pre>
+<div class="block">Set the client-side trust store. Trust store is expected to contain certificates from other parties the client is you
+ expect to communicate with, or from Certificate Authorities that are trusted to identify other parties.
+ <p>
+ Setting a trust store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a> value
+ previously specified.
+ </p>
+ <p>
+ In case a custom trust store or custom SSL context is not specified, the trust management will be configured to use
+ the default Java runtime settings.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStore</code> - client-side trust store. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied trust store parameter is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="hostnameVerifier(javax.net.ssl.HostnameVerifier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hostnameVerifier</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;hostnameVerifier&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</pre>
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>verifier</code> - hostname verifier.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="executorService(java.util.concurrent.ExecutorService)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>executorService</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;executorService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</pre>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.
+ <p>
+ Provided executor service will be used for executing asynchronous tasks.
+ <p>
+ When running in a Jakarta EE container, implementations are required to use the container-managed executor service by
+ default. In Java SE, the default is implementation-specific. In either case, calling this method will override the
+ default.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>executorService</code> - executor service to be used for async invocations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html#async()"><code>Invocation.Builder.async()</code></a>, 
+<a href="Invocation.Builder.html#rx()"><code>Invocation.Builder.rx()</code></a>, 
+<a href="RxInvokerProvider.html#getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)"><code>RxInvokerProvider.getRxInvoker(SyncInvoker, ExecutorService)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scheduledExecutorService</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;scheduledExecutorService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</pre>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.
+ <p>
+ Provided executor service will be used for executing scheduled asynchronous tasks.
+ <p>
+ When running in a Jakarta EE container, implementations are required to use the container-managed scheduled executor
+ service by default. In Java SE the default is implementation-specific. In either case, calling this method will
+ override the default.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheduledExecutorService</code> - executor service to be used for scheduled async invocations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../sse/SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)"><code>SseEventSource.Builder.reconnectingEvery(long, TimeUnit)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="connectTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectTimeout</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;connectTimeout&#8203;(long&nbsp;timeout,
+                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the connect timeout.
+ <p>
+ Value <code>0</code> represents infinity. Negative values are not allowed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the value is negative.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="readTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readTimeout</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a>&nbsp;readTimeout&#8203;(long&nbsp;timeout,
+                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the read timeout.
+ <p>
+ The value is the timeout to read a response. If the server doesn't respond within the defined timeframe,
+ <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> is thrown with <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>TimeoutException</code></a> as a cause.
+ <p>
+ Value <code>0</code> represents infinity. Negative values are not allowed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the value is negative.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&nbsp;build()</pre>
+<div class="block">Build a new client instance using all the configuration previously specified in this client builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new client instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestContext.html b/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestContext.html
new file mode 100644
index 0000000..7e543a3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestContext.html
@@ -0,0 +1,959 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientRequestContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientRequestContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface ClientRequestContext" class="title">Interface ClientRequestContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientRequestContext</span></pre>
+<div class="block">Client request filter context.
+
+ A mutable class that provides request-specific information for the filter, such as request URI, message headers,
+ message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#abortWith(jakarta.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClient()">getClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the client instance associated with the request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable configuration of the request.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityAnnotations()">getEntityAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the annotations attached to the entity instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityClass()">getEntityClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the raw entity type information.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity output stream.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityType()">getEntityType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the generic entity type information.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the context of the
+ current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request URI.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the request.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.OutputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity output stream.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMethod(java.lang.String)">setMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Set the request method.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUri(java.net.URI)">setUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or <code>null</code> if no property exists matching the
+ given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the context of the
+ current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of a property.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> to retrieve the property value will return <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the request URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="setUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUri</h4>
+<pre class="methodSignature">void&nbsp;setUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set a new request URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - new request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMethod(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMethod</h4>
+<pre class="methodSignature">void&nbsp;setMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Set the request method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - new request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable request headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of request headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get a string view of header values associated with the message.
+
+ Changes in the underlying <a href="#getHeaders()"><code>headers map</code></a> are reflected in this view.
+ <p>
+ The method converts the non-string header values to strings using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the class of the value or using the
+ values <code>toString</code> method if a header delegate is not available.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one
+ is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the header value
+ class or using its <code>toString</code> method if a header delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then <code>null</code> is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no request entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according to their q-value, with highest preference
+ first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to <a href="../core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the request.
+
+ The method returns <code>true</code> if the entity is present, returns <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance.
+
+ Returns <code>null</code> if the message does not contain an entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an entity body.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getEntityClass()</pre>
+<div class="block">Get the raw entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>raw entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getEntityType()</pre>
+<div class="block">Get the generic entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>generic entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Set a new message entity. The existing entity <a href="#getEntityAnnotations()"><code>annotations</code></a> and <a href="#getMediaType()"><code>media type</code></a> are preserved.
+ <p>
+ It is the callers responsibility to wrap the actual entity with <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if
+ preservation of its generic type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)"><code>setEntity(Object, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+               <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set a new message entity, including the attached annotations and the media type.
+ <p>
+ It is the callers responsibility to wrap the actual entity with <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if
+ preservation of its generic type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dd><code>annotations</code> - annotations attached to the entity instance.</dd>
+<dd><code>mediaType</code> - entity media type.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object)"><code>setEntity(Object)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getEntityAnnotations()</pre>
+<div class="block">Get the annotations attached to the entity instance.
+ <p>
+ Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such
+ as the ones attached using
+ <a href="Entity.html#%3Cinit%3E(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)"><code>Entity(Object, jakarta.ws.rs.core.MediaType, java.lang.annotation.Annotation[])</code></a> method). The entity
+ instance annotations array does not include annotations declared on the entity implementation class or its ancestors.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations attached to the entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</pre>
+<div class="block">Set a new entity output stream. The JAX-RS runtime is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>outputStream</code> - new entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClient</h4>
+<pre class="methodSignature"><a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a>&nbsp;getClient()</pre>
+<div class="block">Get the client instance associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client instance associated with the request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature"><a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Get the immutable configuration of the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>immutable request configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="abortWith(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>abortWith</h4>
+<pre class="methodSignature">void&nbsp;abortWith&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided response back to the client. The provided
+ response goes through the chain of applicable response filters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response to be sent back to the client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestFilter.html b/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestFilter.html
new file mode 100644
index 0000000..19ad11d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ClientRequestFilter.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientRequestFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientRequestFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface ClientRequestFilter" class="title">Interface ClientRequestFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientRequestFilter</span></pre>
+<div class="block">An extension interface implemented by client request filters.
+
+ Filters implementing this interface MUST be annotated with <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> to be
+ discovered by the JAX-RS runtime. This type of filters is supported only as part of the Client API.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientResponseFilter.html" title="interface in jakarta.ws.rs.client"><code>ClientResponseFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(jakarta.ws.rs.client.ClientRequestContext)">filter</a></span>&#8203;(<a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a client transport layer.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(jakarta.ws.rs.client.ClientRequestContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called before a request has been dispatched to a client transport layer.
+
+ Filters in the filter chain are ordered according to their <code>jakarta.annotation.Priority</code> class-level annotation
+ value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseContext.html b/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseContext.html
new file mode 100644
index 0000000..59620c3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseContext.html
@@ -0,0 +1,726 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientResponseContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientResponseContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface ClientResponseContext" class="title">Interface ClientResponseContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientResponseContext</span></pre>
+<div class="block">Client response filter context.
+
+ A mutable class that provides response-specific information for the filter, such as message headers, message entity
+ or request-scoped properties. The exposed setters allow modification of the exposed response-specific information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity input stream.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is a non-empty entity input stream is available in the response message.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.InputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity input stream.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Set a new response status code.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code or -1 if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">void&nbsp;setStatus&#8203;(int&nbsp;code)</pre>
+<div class="block">Set a new response status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - new status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature"><a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information or <code>null</code> if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatusInfo</h4>
+<pre class="methodSignature">void&nbsp;setStatusInfo&#8203;(<a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</pre>
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusInfo</code> - the response status information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable response headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of response headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then <code>null</code> is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case strings.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other cases returns -1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no response entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to a <a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core"><code>new cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature"><a href="../core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Never returns <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the for the relation link exists, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature"><a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature"><a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is a non-empty entity input stream is available in the response message.
+
+ The method returns <code>true</code> if the entity is present, returns <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity input stream. The JAX-RS runtime is responsible for closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</pre>
+<div class="block">Set a new entity input stream. The JAX-RS runtime is responsible for closing the input stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - new entity input stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseFilter.html b/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseFilter.html
new file mode 100644
index 0000000..905eeff
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ClientResponseFilter.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ClientResponseFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientResponseFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface ClientResponseFilter" class="title">Interface ClientResponseFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientResponseFilter</span></pre>
+<div class="block">An extension interface implemented by client response filters.
+
+ Filters implementing this interface MUST be annotated with <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> to be
+ discovered by the JAX-RS runtime. This type of filters is supported only as part of the Client API.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>ClientRequestFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>request
+ filter</code></a> or when the HTTP invocation returns).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+            <a href="ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>request
+ filter</code></a> or when the HTTP invocation returns).
+
+ Filters in the filter chain are ordered according to their <code>jakarta.annotation.Priority</code> class-level annotation
+ value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dd><code>responseContext</code> - response context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/CompletionStageRxInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/CompletionStageRxInvoker.html
new file mode 100644
index 0000000..2d18e8b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/CompletionStageRxInvoker.html
@@ -0,0 +1,973 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>CompletionStageRxInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompletionStageRxInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionStageRxInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface CompletionStageRxInvoker" class="title">Interface CompletionStageRxInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">CompletionStageRxInvoker</span>
+extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</pre>
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;get()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get()">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get(java.lang.Class)">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get(jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>clazz</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                           <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>type</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>clazz</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                            <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>type</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;delete()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete()">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete(java.lang.Class)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;head()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#head()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#head()">head</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;options()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options()">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options(java.lang.Class)">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options(jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;trace()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace()">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace(java.lang.Class)">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,java.lang.Class)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                 <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                              <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionStageRxInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/Entity.html b/apidocs/3.0.0/jakarta/ws/rs/client/Entity.html
new file mode 100644
index 0000000..180eb89
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/Entity.html
@@ -0,0 +1,782 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Entity (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Entity (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":9,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":9,"i17":9,"i18":10,"i19":9,"i20":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Entity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Class Entity" class="title">Class Entity&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.client.Entity&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity type.</dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">Entity&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,jakarta.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,jakarta.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,java.lang.String)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#form(jakarta.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#form(jakarta.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotations()">getAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity annotations.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEncoding()">getEncoding</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity encoding.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="Entity.html" title="type parameter in Entity">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity data.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity language.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity media type.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariant()">getVariant</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#html(T)">html</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#json(T)">json</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#text(T)">text</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#xhtml(T)">xhtml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#xml(T)">xml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="entity(java.lang.Object,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a><a id="entity(T,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a><a id="entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dd><code>annotations</code> - entity annotations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,java.lang.String)">
+<!--   -->
+</a><a id="entity(T,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,jakarta.ws.rs.core.Variant)">
+<!--   -->
+</a><a id="entity(T,jakarta.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>variant</code> - entity <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation[])">
+<!--   -->
+</a><a id="entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>variant</code> - entity <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</dd>
+<dd><code>annotations</code> - entity annotations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="text(java.lang.Object)">
+<!--   -->
+</a><a id="text(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>text</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;text&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="xml(java.lang.Object)">
+<!--   -->
+</a><a id="xml(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>xml</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;xml&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="json(java.lang.Object)">
+<!--   -->
+</a><a id="json(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>json</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;json&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="html(java.lang.Object)">
+<!--   -->
+</a><a id="html(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>html</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;html&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="xhtml(java.lang.Object)">
+<!--   -->
+</a><a id="xhtml(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>xhtml</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;xhtml&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="form(jakarta.ws.rs.core.Form)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>form</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;&nbsp;form&#8203;(<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;form)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>form</code> - form data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="form(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>form</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;&nbsp;form&#8203;(<a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>formData</code> - multivalued map representing the form data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVariant()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVariant</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;getVariant()</pre>
+<div class="block">Get entity <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity variant information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get entity media type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity media type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEncoding()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEncoding</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getEncoding()</pre>
+<div class="block">Get entity encoding.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity encoding.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get entity language.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity language.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public&nbsp;<a href="Entity.html" title="type parameter in Entity">T</a>&nbsp;getEntity()</pre>
+<div class="block">Get entity data.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAnnotations</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getAnnotations()</pre>
+<div class="block">Get the entity annotations.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity annotations if set, an empty annotation array if no entity annotations have been specified.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Entity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.Builder.html
new file mode 100644
index 0000000..6d9b825
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.Builder.html
@@ -0,0 +1,795 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Invocation.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Invocation.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface Invocation.Builder" class="title">Interface Invocation.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Invocation.Builder</span>
+extends <a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></pre>
+<div class="block">A client request invocation builder.
+
+ The builder, obtained via a call to one of the <code>request(...)</code> methods on a <a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><code>resource target</code></a>,
+ provides methods for preparing a client request invocation. Once the request is prepared the invocation builder can
+ be either used to build an <a href="Invocation.html" title="interface in jakarta.ws.rs.client"><code>Invocation</code></a> with a generic execution interface:
+
+ <pre>
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build a HTTP GET request that accepts "text/plain" response type
+ // and contains a custom HTTP header entry "Foo: bar".
+ Invocation invocation = resourceTarget.request("text/plain")
+         .header("Foo", "bar").buildGet();
+
+ // Invoke the request using generic interface
+ String response = invocation.invoke(String.class);
+ </pre>
+
+ Alternatively, one of the inherited <a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client"><code>synchronous invocation methods</code></a> can be used to invoke the
+ prepared request and return the server response in a single step, e.g.:
+
+ <pre>
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build and invoke the get request in a single step
+ String response = resourceTarget.request("text/plain")
+         .header("Foo", "bar").get(String.class);
+ </pre>
+
+ Once the request is fully prepared for invoking, switching to an <a href="AsyncInvoker.html" title="interface in jakarta.ws.rs.client"><code>asynchronous invocation</code></a> mode is
+ possible by calling the <a href="#async()"><code>async()</code></a> method on the builder, e.g.:
+
+ <pre>
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build and invoke the get request asynchronously in a single step
+ Future&lt;String&gt; response = resourceTarget.request("text/plain")
+         .header("Foo", "bar").async().get(String.class);
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accept(jakarta.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accept(java.lang.String...)">accept</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptEncoding(java.lang.String...)">acceptEncoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable encodings.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptLanguage(java.lang.String...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptLanguage(java.util.Locale...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#async()">async</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.String)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.String,jakarta.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and request entity.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildDelete()">buildDelete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a DELETE request invocation.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildGet()">buildGet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a GET request invocation.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildPost(jakarta.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildPut(jakarta.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(jakarta.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(java.lang.String,java.lang.String)">cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#headers(jakarta.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rx()">rx</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rx(java.lang.Class)">rx</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Access a reactive invoker based on a <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.client.SyncInvoker">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.client.<a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></h3>
+<code><a href="SyncInvoker.html#delete()">delete</a>, <a href="SyncInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a>, <a href="SyncInvoker.html#delete(java.lang.Class)">delete</a>, <a href="SyncInvoker.html#get()">get</a>, <a href="SyncInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a>, <a href="SyncInvoker.html#get(java.lang.Class)">get</a>, <a href="SyncInvoker.html#head()">head</a>, <a href="SyncInvoker.html#method(java.lang.String)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,java.lang.Class)">method</a>, <a href="SyncInvoker.html#options()">options</a>, <a href="SyncInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a>, <a href="SyncInvoker.html#options(java.lang.Class)">options</a>, <a href="SyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a>, <a href="SyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a>, <a href="SyncInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a>, <a href="SyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a>, <a href="SyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a>, <a href="SyncInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a>, <a href="SyncInvoker.html#trace()">trace</a>, <a href="SyncInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a>, <a href="SyncInvoker.html#trace(java.lang.Class)">trace</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="build(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - request method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built request.</dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.String,jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+                 <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a request invocation using an arbitrary request method name and request entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - request method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildGet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildGet</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;buildGet()</pre>
+<div class="block">Build a GET request invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built GET request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildDelete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildDelete</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;buildDelete()</pre>
+<div class="block">Build a DELETE request invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built DELETE request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildPost(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildPost</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;buildPost&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a POST request invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built POST request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildPut(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildPut</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;buildPut&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a PUT request invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built PUT request.</dd>
+</dl>
+</li>
+</ul>
+<a id="async()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>async</h4>
+<pre class="methodSignature"><a href="AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a>&nbsp;async()</pre>
+<div class="block">Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>asynchronous uniform request invocation interface.</dd>
+</dl>
+</li>
+</ul>
+<a id="accept(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accept</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;accept&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Add the accepted response media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="accept(jakarta.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accept</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;accept&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Add the accepted response media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptLanguage(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptLanguage</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;acceptLanguage&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</pre>
+<div class="block">Add acceptable languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>locales</code> - an array of the acceptable languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptLanguage(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptLanguage</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;acceptLanguage&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</pre>
+<div class="block">Add acceptable languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>locales</code> - an array of the acceptable languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptEncoding(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptEncoding</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;acceptEncoding&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Add acceptable encodings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - an array of the acceptable encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(jakarta.ws.rs.core.Cookie)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;cookie&#8203;(<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</pre>
+<div class="block">Add a cookie to be set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Add a cookie to be set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cacheControl(jakarta.ws.rs.core.CacheControl)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheControl</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;cacheControl&#8203;(<a href="../core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</pre>
+<div class="block">Set the cache control data of the message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cacheControl</code> - the cache control directives, if <code>null</code> any existing cache control directives will be
+ removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="header(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>header</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;header&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Add an arbitrary header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the header</dd>
+<dd><code>value</code> - the value of the header, the header will be serialized using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the class of <code>value</code> or using
+ its <code>toString</code> method if a header delegate is not available. If <code>value</code> is <code>null</code> then all current
+ headers of the same name will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="headers(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>headers</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;headers&#8203;(<a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</pre>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headers</code> - new headers to be set, if <code>null</code> all existing headers will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set a new property in the context of a request represented by this invocation builder.
+ <p>
+ The property is available for a later retrieval via <a href="ClientRequestContext.html#getProperty(java.lang.String)"><code>ClientRequestContext.getProperty(String)</code></a> or
+ <a href="../ext/InterceptorContext.html#getProperty(java.lang.String)"><code>InterceptorContext.getProperty(String)</code></a>. If a property with a given name is already set in the
+ request context, the existing value of the property will be updated. Setting a <code>null</code> value into a property
+ effectively removes the property from the request property bag.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.html#property(java.lang.String,java.lang.Object)"><code>Invocation.property(String, Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="rx()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rx</h4>
+<pre class="methodSignature"><a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a>&nbsp;rx()</pre>
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>default reactive invoker instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#rx(java.lang.Class)"><code>rx(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="rx(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>rx</h4>
+<pre class="methodSignature">&lt;T extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;&nbsp;T&nbsp;rx&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block">Access a reactive invoker based on a <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass provider. Note that corresponding
+ <a href="RxInvokerProvider.html" title="interface in jakarta.ws.rs.client"><code>RxInvokerProvider</code></a> must be registered in the client runtime.
+ <p>
+ This method is an extension point for JAX-RS implementations to support other types representing asynchronous
+ computations.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic invoker type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reactive invoker instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - when provider for given class is not registered.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Configurable.html#register(java.lang.Class)"><code>Configurable.register(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.html b/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.html
new file mode 100644
index 0000000..81c6407
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/Invocation.html
@@ -0,0 +1,529 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Invocation (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Invocation (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface Invocation" class="title">Interface Invocation</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Invocation</span></pre>
+<div class="block">A client request invocation.
+
+ An invocation is a request that has been prepared and is ready for execution. Invocations provide a generic (command)
+ interface that enables a separation of concerns between the creator and the submitter. In particular, the submitter
+ does not need to know how the invocation was prepared, but only how it should be executed (synchronously or
+ asynchronously) and when.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><code>Invocation.Builder</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke()">invoke</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke(jakarta.ws.rs.core.GenericType)">invoke</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified generic type back.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke(java.lang.Class)">invoke</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified type back.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit()">submit</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future response back.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(jakarta.ws.rs.client.InvocationCallback)">submit</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and register an <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client"><code>InvocationCallback</code></a> to process the future
+ result of the invocation.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(jakarta.ws.rs.core.GenericType)">submit</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(java.lang.Class)">submit</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified type back.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set a new property in the context of a request represented by this invocation.
+ <p>
+ The property is available for a later retrieval via <a href="ClientRequestContext.html#getProperty(java.lang.String)"><code>ClientRequestContext.getProperty(String)</code></a> or
+ <a href="../ext/InterceptorContext.html#getProperty(java.lang.String)"><code>InterceptorContext.getProperty(String)</code></a>. If a property with a given name is already set in the
+ request context, the existing value of the property will be updated. Setting a <code>null</code> value into a property
+ effectively removes the property from the request property bag.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated invocation.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html#property(java.lang.String,java.lang.Object)"><code>Invocation.Builder.property(String, Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="invoke()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;invoke()</pre>
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> object as a result of the request invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="invoke(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;invoke&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Synchronously invoke the request and receive a response of the specified type back.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response object of the specified type as a result of the request invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="invoke(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;invoke&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Synchronously invoke the request and receive a response of the specified generic type back.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - type literal representing a generic Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response object of the specified generic type as a result of the request invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;submit()</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown in case of
+ an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing
+ exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose
+ processing has failed.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> object as a result of the request invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified type back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown in
+ case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case
+ the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and
+ the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a properly received
+ response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain
+ the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified type as a result of the request invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown in
+ case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case
+ the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and
+ the specified response type is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a properly received
+ response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain
+ the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - type literal representing a generic Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified generic type as a result of the request invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(jakarta.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Submit the request for an asynchronous invocation and register an <a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client"><code>InvocationCallback</code></a> to process the future
+ result of the invocation.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned <code>Future</code> instance may
+ throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a> that wraps either a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> thrown in
+ case of an invocation processing failure or a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case
+ the received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and
+ the generic type of the supplied response callback is not <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of
+ a properly received response fails, the wrapped processing exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a>
+ type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - invocation callback for asynchronous processing of the request invocation result.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified type as a result of the request invocation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/InvocationCallback.html b/apidocs/3.0.0/jakarta/ws/rs/client/InvocationCallback.html
new file mode 100644
index 0000000..41dc8dc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/InvocationCallback.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>InvocationCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InvocationCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InvocationCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface InvocationCallback" class="title">Interface InvocationCallback&lt;RESPONSE&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RESPONSE</code> - response type. It can be either a general-purpose <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> or the
+ anticipated response entity type.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InvocationCallback&lt;RESPONSE&gt;</span></pre>
+<div class="block">Callback that can be implemented to receive the asynchronous processing events from the invocation processing.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#completed(RESPONSE)">completed</a></span>&#8203;(<a href="InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called when the invocation was successfully completed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failed(java.lang.Throwable)">failed</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">Called when the invocation has failed for any reason.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="completed(java.lang.Object)">
+<!--   -->
+</a><a id="completed(RESPONSE)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>completed</h4>
+<pre class="methodSignature">void&nbsp;completed&#8203;(<a href="InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&nbsp;response)</pre>
+<div class="block">Called when the invocation was successfully completed. Note that this does not necessarily mean the response has bean
+ fully read, which depends on the parameterized invocation callback response type.
+ <p>
+ Once this invocation callback method returns, the underlying <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance will be
+ automatically closed by the runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response data.</dd>
+</dl>
+</li>
+</ul>
+<a id="failed(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failed</h4>
+<pre class="methodSignature">void&nbsp;failed&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</pre>
+<div class="block">Called when the invocation has failed for any reason.
+ <p>
+ Note that the provided <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> may be a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> in case the invocation
+ processing failure has been caused by a client-side runtime component error. The <code>Throwable</code> may also be a
+ <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses in case the response status code is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic callback type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. In case a processing of a properly received response fails, the wrapped processing
+ exception will be of <a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed. A <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CancellationException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CancellationException</code></a> would be indicate that the
+ invocation has been cancelled. An <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>InterruptedException</code></a> would indicate that the thread executing the
+ invocation has been interrupted.
+ </p>
+ <p>
+ Once this invocation callback method returns, the underlying <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance will be
+ automatically closed by the runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - contains failure details.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InvocationCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/ResponseProcessingException.html b/apidocs/3.0.0/jakarta/ws/rs/client/ResponseProcessingException.html
new file mode 100644
index 0000000..9169124
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/ResponseProcessingException.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ResponseProcessingException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResponseProcessingException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResponseProcessingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Class ResponseProcessingException" class="title">Class ResponseProcessingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../ProcessingException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ProcessingException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.client.ResponseProcessingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ResponseProcessingException</span>
+extends <a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></pre>
+<div class="block">JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g. in a
+ filter chain or during message entity de-serialization). The exception contains the nested <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance
+ for which the runtime response processing failed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#jakarta.ws.rs.client.ResponseProcessingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">
+ Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime response processing exception for a specific <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> with the
+ specified cause and a detail message of <code>(cause==null ? null : cause.toString())</code> (which typically contains the
+ class and detail message of <code>cause</code>).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new JAX-RS runtime response processing exception for a specific <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> with the
+ specified cause and a detail message of <code>(cause==null ? null : cause.toString())</code> (which typically contains the
+ class and detail message of <code>cause</code>). This constructor is useful for runtime exceptions that are little more
+ than wrappers for other throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value
+ is permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block"><p>
+ Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause.
+ </p>
+ Note that the detail message associated with <code>cause</code> is <i>not</i> automatically incorporated in this runtime
+ exception's detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value
+ is permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Response,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized,
+ and may subsequently be initialized by a call to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink"><code>Throwable.initCause(java.lang.Throwable)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResponse()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResponse</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;getResponse()</pre>
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP response.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResponseProcessingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/RxInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/RxInvoker.html
new file mode 100644
index 0000000..650dcf2
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/RxInvoker.html
@@ -0,0 +1,1053 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RxInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RxInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface RxInvoker" class="title">Interface RxInvoker&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - a type representing the asynchronous computation.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">RxInvoker&lt;T&gt;</span></pre>
+<div class="block">Uniform interface for reactive invocation of HTTP methods. All reactive invokers in JAX-RS must implement this
+ interface. The type parameter <code>T</code> represents the Java type of an asynchronous computation. All JAX-RS
+ implementations MUST support the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client"><code>CompletionStageRxInvoker</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server
+ is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/RxInvokerProvider.html b/apidocs/3.0.0/jakarta/ws/rs/client/RxInvokerProvider.html
new file mode 100644
index 0000000..92efd85
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/RxInvokerProvider.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RxInvokerProvider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RxInvokerProvider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvokerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface RxInvokerProvider" class="title">Interface RxInvokerProvider&lt;T extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - <code>RxInvoker</code> subclass type.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">RxInvokerProvider&lt;T extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;</span></pre>
+<div class="block"><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> provider.
+ <p>
+ <code>RxInvokerProvider</code> must be registered in the client runtime using <a href="../core/Configurable.html#register(java.lang.Class)"><code>Configurable.register(Class)</code></a>. It provides
+ a way to plug-in support for other reactive implementations, see <a href="Invocation.Builder.html#rx(java.lang.Class)"><code>Invocation.Builder.rx(Class)</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek, Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker</a></span>&#8203;(<a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Get <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isProviderFor(java.lang.Class)">isProviderFor</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Determine if this is a provider for the given <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isProviderFor(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isProviderFor</h4>
+<pre class="methodSignature">boolean&nbsp;isProviderFor&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
+<div class="block">Determine if this is a provider for the given <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - <code>RxInvoker</code> subclass.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when this provider provides given <code>RxInvoker</code> subclass, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRxInvoker</h4>
+<pre class="methodSignature"><a href="RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a>&nbsp;getRxInvoker&#8203;(<a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</pre>
+<div class="block">Get <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> implementation instance.
+ <p>
+ The returned instance has to be thread safe.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>syncInvoker</code> - <code>SyncInvoker</code> used to execute current request.</dd>
+<dd><code>executorService</code> - executor service, which should be used for executing reactive callbacks invocations. It can be
+ <code>null</code>; in that case it's up to the implementation to choose the best <code>ExecutorService</code> in given
+ environment.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance of the <code>RxInvoker</code> subclass.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)"><code>ClientBuilder.executorService(ExecutorService)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvokerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/SyncInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/SyncInvoker.html
new file mode 100644
index 0000000..55d1b18
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/SyncInvoker.html
@@ -0,0 +1,1043 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SyncInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SyncInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SyncInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface SyncInvoker" class="title">Interface SyncInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SyncInvoker</span></pre>
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the invocation processing has failed.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;put&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;post&#8203;(<a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+ <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in jakarta.ws.rs.core"><code>Variant</code></a> information. Any variant-related
+ HTTP headers previously set (namely <code>Content-Type</code>, <code>Content-Language</code> and <code>Content-Encoding</code>) will
+ be overwritten using the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the server is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does
+ not represent <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SyncInvoker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/WebTarget.html b/apidocs/3.0.0/jakarta/ws/rs/client/WebTarget.html
new file mode 100644
index 0000000..644a511
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/WebTarget.html
@@ -0,0 +1,725 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>WebTarget (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebTarget (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebTarget.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.client</a></div>
+<h2 title="Interface WebTarget" class="title">Interface WebTarget</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WebTarget</span>
+extends <a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&gt;</pre>
+<div class="block">A resource target identified by the resource URI.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI identifying the resource.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current resource target.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of the current target instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI of the current target instance.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request()">request</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request(jakarta.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request(java.lang.String...)">request</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.core.<a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the URI identifying the resource.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the resource URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriBuilder</h4>
+<pre class="methodSignature"><a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;getUriBuilder()</pre>
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current resource target. The returned URI builder is
+ detached from the target, i.e. any updates in the URI builder MUST NOT have any effects on the URI of the originating
+ target.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized URI builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of the current target instance.
+ <p>
+ When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if
+ necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.
+ </p>
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a> is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+                          boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a> is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplateFromEncoded</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplateFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value. Value is converted to <code>String</code> using
+ its <code>toString()</code> method and is then encoded to match the rules of the URI component to which they pertain. All
+ % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a> is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - encoded value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code> instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or values in the map is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                           boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code> instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or values in the map is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplatesFromEncoded(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplatesFromEncoded</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;resolveTemplatesFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.
+
+ All templates with their name matching one of the keys in the supplied map will be replaced by the value in the
+ supplied map. Values are converted to <code>String</code> using their <code>toString()</code> method and are then encoded to
+ match the rules of the URI component to which they pertain. All % characters in the stringified values that are not
+ followed by two hexadecimal numbers will be encoded.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code> instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their encoded values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or encoded values in the map is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="matrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>matrixParam</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;matrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single <code>null</code> value is
+ entered, all parameters with that name in the current final path segment are removed (if present) from the collection
+ of last segment matrix parameters inherited from the current target.
+ <p>
+ Note that the matrix parameters are tied to a particular path segment; appending a value to an existing matrix
+ parameter name will not affect the position of the matrix parameter in the URI path.
+ </p>
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the parameter name is <code>null</code> or if there are multiple values present and any of
+ those values is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="queryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queryParam</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;queryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single <code>null</code> value is
+ entered, all parameters with that name are removed (if present) from the collection of query parameters inherited
+ from the current target.
+ <p>
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the parameter name is <code>null</code> or if there are multiple values present and any of
+ those values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="request()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;request()</pre>
+<div class="block">Start building a request to the targeted web resource.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="request(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;request&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</pre>
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.
+ <p>
+ Invoking this method is identical to:
+ </p>
+
+ <pre>
+ webTarget.request().accept(types);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptedResponseTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="request(jakarta.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a>&nbsp;request&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</pre>
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.
+ <p>
+ Invoking this method is identical to:
+ </p>
+
+ <pre>
+ webTarget.request().accept(types);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptedResponseTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebTarget.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/AsyncInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/AsyncInvoker.html
new file mode 100644
index 0000000..fa80bdd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/AsyncInvoker.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.AsyncInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.AsyncInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.AsyncInvoker" class="title">Uses of Interface<br>jakarta.ws.rs.client.AsyncInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#async()">async</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Client.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Client.html
new file mode 100644
index 0000000..f5820ae
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Client.html
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.Client (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.Client (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Client.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.Client" class="title">Uses of Interface<br>jakarta.ws.rs.client.Client</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a new client instance using all the configuration previously specified in this client builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../ClientRequestContext.html#getClient()">getClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the client instance associated with the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newClient()">newClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided by the JAX-RS
+ implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newClient(jakarta.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="../Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided
+ by the JAX-RS implementation provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Client.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientBuilder.html
new file mode 100644
index 0000000..71f2915
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientBuilder.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.client.ClientBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.client.ClientBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.client.ClientBuilder" class="title">Uses of Class<br>jakarta.ws.rs.client.ClientBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout</a></span>&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the connect timeout.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)">executorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</code></th>
+<td class="colLast">
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification
+ information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#keyStore(java.security.KeyStore,char%5B%5D)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        char[]&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#keyStore(java.security.KeyStore,java.lang.String)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder implementation class provided by the
+ JAX-RS implementation provider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout</a></span>&#8203;(long&nbsp;timeout,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the read timeout.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#sslContext(javax.net.ssl.SSLContext)">sslContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</code></th>
+<td class="colLast">
+<div class="block">Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web targets</code></a> created by the client instance that is using this SSL context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#trustStore(java.security.KeyStore)">trustStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side trust store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#withConfig(jakarta.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../../core/Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientBuilder.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestContext.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestContext.html
new file mode 100644
index 0000000..17647d7
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestContext.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.ClientRequestContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.ClientRequestContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.ClientRequestContext" class="title">Uses of Interface<br>jakarta.ws.rs.client.ClientRequestContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestFilter.</span><code><span class="memberNameLink"><a href="../ClientRequestFilter.html#filter(jakarta.ws.rs.client.ClientRequestContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a client transport layer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseFilter.</span><code><span class="memberNameLink"><a href="../ClientResponseFilter.html#filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="../ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>request
+ filter</code></a> or when the HTTP invocation returns).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestFilter.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestFilter.html
new file mode 100644
index 0000000..230295a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientRequestFilter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.ClientRequestFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.ClientRequestFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestFilter.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.ClientRequestFilter" class="title">Uses of Interface<br>jakarta.ws.rs.client.ClientRequestFilter</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.client.ClientRequestFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestFilter.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseContext.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseContext.html
new file mode 100644
index 0000000..afcc1cd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseContext.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.ClientResponseContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.ClientResponseContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.ClientResponseContext" class="title">Uses of Interface<br>jakarta.ws.rs.client.ClientResponseContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseFilter.</span><code><span class="memberNameLink"><a href="../ClientResponseFilter.html#filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="../ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><code>request
+ filter</code></a> or when the HTTP invocation returns).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseContext.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseFilter.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseFilter.html
new file mode 100644
index 0000000..77ab888
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ClientResponseFilter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.ClientResponseFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.ClientResponseFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseFilter.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.ClientResponseFilter" class="title">Uses of Interface<br>jakarta.ws.rs.client.ClientResponseFilter</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.client.ClientResponseFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseFilter.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/CompletionStageRxInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/CompletionStageRxInvoker.html
new file mode 100644
index 0000000..f635e4a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/CompletionStageRxInvoker.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.CompletionStageRxInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.CompletionStageRxInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.CompletionStageRxInvoker" class="title">Uses of Interface<br>jakarta.ws.rs.client.CompletionStageRxInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#rx()">rx</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Entity.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Entity.html
new file mode 100644
index 0000000..631619e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Entity.html
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.client.Entity (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.client.Entity (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Entity.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.client.Entity" class="title">Uses of Class<br>jakarta.ws.rs.client.Entity</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,jakarta.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,jakarta.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,java.lang.String)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#form(jakarta.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../../core/Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#form(jakarta.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#html(T)">html</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#json(T)">json</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#text(T)">text</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#xhtml(T)">xhtml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#xml(T)">xml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String,jakarta.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and request entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPost(jakarta.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPut(jakarta.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(jakarta.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(jakarta.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Entity.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.Builder.html
new file mode 100644
index 0000000..88176da
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.Builder.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.Invocation.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.Invocation.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.Invocation.Builder" class="title">Uses of Interface<br>jakarta.ws.rs.client.Invocation.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#accept(jakarta.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#accept(java.lang.String...)">accept</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptEncoding(java.lang.String...)">acceptEncoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable encodings.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptLanguage(java.lang.String...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptLanguage(java.util.Locale...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../../core/CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cookie(jakarta.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cookie(java.lang.String,java.lang.String)">cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#headers(jakarta.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#invocation(jakarta.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">
+ Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request()">request</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request(jakarta.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request(java.lang.String...)">request</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.html
new file mode 100644
index 0000000..1eda7da
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/Invocation.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.Invocation (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.Invocation (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.Invocation" class="title">Uses of Interface<br>jakarta.ws.rs.client.Invocation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String,jakarta.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and request entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildDelete()">buildDelete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a DELETE request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildGet()">buildGet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a GET request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPost(jakarta.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPut(jakarta.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../Invocation.html#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/InvocationCallback.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/InvocationCallback.html
new file mode 100644
index 0000000..467e738
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/InvocationCallback.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.InvocationCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.InvocationCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.InvocationCallback" class="title">Uses of Interface<br>jakarta.ws.rs.client.InvocationCallback</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#delete(jakarta.ws.rs.client.InvocationCallback)">delete</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#get(jakarta.ws.rs.client.InvocationCallback)">get</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#head(jakarta.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="../../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#options(jakarta.ws.rs.client.InvocationCallback)">options</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="../Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../Invocation.html#submit(jakarta.ws.rs.client.InvocationCallback)">submit</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and register an <a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client"><code>InvocationCallback</code></a> to process the future
+ result of the invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#trace(jakarta.ws.rs.client.InvocationCallback)">trace</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InvocationCallback.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ResponseProcessingException.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ResponseProcessingException.html
new file mode 100644
index 0000000..a33c677
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/ResponseProcessingException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.client.ResponseProcessingException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.client.ResponseProcessingException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResponseProcessingException.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.client.ResponseProcessingException" class="title">Uses of Class<br>jakarta.ws.rs.client.ResponseProcessingException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.client.ResponseProcessingException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResponseProcessingException.html" title="class in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvoker.html
new file mode 100644
index 0000000..b2db320
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvoker.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.RxInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.RxInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.RxInvoker" class="title">Uses of Interface<br>jakarta.ws.rs.client.RxInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">jakarta.ws.rs.client</a> with type parameters of type <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">RxInvokerProvider</a>&lt;T extends <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block"><a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></span></code></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with type parameters of type <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#rx(java.lang.Class)">rx</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Access a reactive invoker based on a <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvokerProvider.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvokerProvider.html
new file mode 100644
index 0000000..b6a0d9a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/RxInvokerProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.RxInvokerProvider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.RxInvokerProvider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.RxInvokerProvider" class="title">Uses of Interface<br>jakarta.ws.rs.client.RxInvokerProvider</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.client.RxInvokerProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/SyncInvoker.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/SyncInvoker.html
new file mode 100644
index 0000000..b951898
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/SyncInvoker.html
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.SyncInvoker (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.SyncInvoker (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.SyncInvoker" class="title">Uses of Interface<br>jakarta.ws.rs.client.SyncInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvokerProvider.</span><code><span class="memberNameLink"><a href="../RxInvokerProvider.html#getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker</a></span>&#8203;(<a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SyncInvoker.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/class-use/WebTarget.html b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/WebTarget.html
new file mode 100644
index 0000000..4f7e656
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/class-use/WebTarget.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.client.WebTarget (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.client.WebTarget (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.client.WebTarget" class="title">Uses of Interface<br>jakarta.ws.rs.client.WebTarget</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a> in <a href="../package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.client</a> that return <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of the current target instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code> in the URI of the
+ current target instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(jakarta.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(jakarta.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(java.lang.String)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(java.net.URI)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a> in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a> with parameters of type <a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../../sse/SseEventSource.Builder.html#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../../sse/SseEventSource.html#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../../sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebTarget.html" title="interface in jakarta.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/client/package-summary.html
new file mode 100644
index 0000000..2995b37
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/package-summary.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.client (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.client (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs.client</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block"><h2>The JAX-RS client API</h2>
+ <p>
+ The JAX-RS client API is a Java based API used to access Web resources. It is not restricted to resources implemented
+ using JAX-RS. It provides a higher-level abstraction compared to a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>plain HTTP
+ communication API</code></a> as well as integration with the JAX-RS extension providers, in order to enable concise and
+ efficient implementation of reusable client-side solutions that leverage existing and well established client-side
+ implementations of HTTP-based communication.
+ </p>
+ The JAX-RS Client API encapsulates the Uniform Interface Constraint &ndash; a key constraint of the REST
+ architectural style &ndash; and associated data elements as client-side Java artifacts and supports a pluggable
+ architecture by defining multiple extension points.
+
+ <h3>Client API Bootstrapping and Configuration</h3> The main entry point to the API is a
+ <a href="ClientBuilder.html" title="class in jakarta.ws.rs.client"><code>ClientBuilder</code></a> that is used to bootstrap <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances -
+ <a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a>, heavy-weight objects that manage the underlying communication
+ infrastructure and serve as the root objects for accessing any Web resource. The following example illustrates the
+ bootstrapping and configuration of a <code>Client</code> instance:
+
+ <pre>
+ Client client = ClientBuilder.newClient();
+
+ client.property("MyProperty", "MyValue")
+         .register(MyProvider.class)
+         .register(MyFeature.class);
+ </pre>
+
+ <h3>Accessing Web Resources</h3> A Web resource can be accessed using a fluent API in which method invocations are
+ chained to configure and ultimately submit an HTTP request. The following example gets a <code>text/plain</code>
+ representation of the resource identified by <code>"http://example.org/hello"</code>:
+
+ <pre>
+ Client client = ClientBuilder.newClient();
+ Response res = client.target("http://example.org/hello").request("text/plain").get();
+ </pre>
+
+ Conceptually, the steps required to submit a request are the following:
+ <ol>
+ <li>obtain an <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance</li>
+ <li>create a <a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><code>WebTarget</code></a> pointing at a Web resource</li>
+ <li><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><code>build</code></a> a request</li>
+ <li>submit a request to directly retrieve a response or get a prepared <a href="Invocation.html" title="interface in jakarta.ws.rs.client"><code>Invocation</code></a> for
+ later submission</li>
+ </ol>
+
+ As illustrated above, individual Web resources are in the JAX-RS Client API represented as resource targets. Each
+ <code>WebTarget</code> instance is bound to a concrete URI, e.g. <code>"http://example.org/messages/123"</code>, or a URI
+ template, e.g. <code>"http://example.org/messages/{id}"</code>. That way a single target can either point at a particular
+ resource or represent a larger group of resources (that e.g. share a common configuration) from which concrete
+ resources can be later derived:
+
+ <pre>
+ // Parent target for all messages
+ WebTarget messages = client.target("http://example.org/messages/{id}");
+
+ // New target for http://example.org/messages/123
+ WebTarget msg123 = messages.resolveTemplate("id", 123);
+
+ // New target for http://example.org/messages/456
+ WebTarget msg456 = messages.resolveTemplate("id", 456);
+ </pre>
+
+ <h3>Generic Invocations</h3> An <a href="Invocation.html" title="interface in jakarta.ws.rs.client"><code>Invocation</code></a> is a request that has been prepared and is
+ ready for execution. Invocations provide a generic interface that enables a separation of concerns between the
+ creator and the submitter. In particular, the submitter does not need to know how the invocation was prepared, but
+ only whether it should be executed synchronously or asynchronously.
+
+ <pre>
+   Invocation inv1 = client.target("http://example.org/atm/balance")
+       .queryParam("card", "111122223333").queryParam("pin", "9876")
+       .request("text/plain").buildGet();
+   Invocation inv2 = client.target("http://example.org/atm/withdrawal")
+       .queryParam("card", "111122223333").queryParam("pin", "9876")
+       .request().buildPost(text("50.0")));
+
+   Collection&lt;Invocation&gt; invs = Arrays.asList(inv1, inv2);
+   // Executed by the submitter
+   Collection&lt;Response&gt; ress = Collections.transform(invs, new F&lt;Invocation, Response&gt;() {
+      public Response apply(Invocation inv) {return inv.invoke(); }
+   });
+ </pre></div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AsyncInvoker.html" title="interface in jakarta.ws.rs.client">AsyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Client.html" title="interface in jakarta.ws.rs.client">Client</a></th>
+<td class="colLast">
+<div class="block">
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client">ClientRequestContext</a></th>
+<td class="colLast">
+<div class="block">Client request filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientRequestFilter.html" title="interface in jakarta.ws.rs.client">ClientRequestFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by client request filters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientResponseContext.html" title="interface in jakarta.ws.rs.client">ClientResponseContext</a></th>
+<td class="colLast">
+<div class="block">Client response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientResponseFilter.html" title="interface in jakarta.ws.rs.client">ClientResponseFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by client response filters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client">CompletionStageRxInvoker</a></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Invocation.html" title="interface in jakarta.ws.rs.client">Invocation</a></th>
+<td class="colLast">
+<div class="block">A client request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;RESPONSE&gt;</th>
+<td class="colLast">
+<div class="block">Callback that can be implemented to receive the asynchronous processing events from the invocation processing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RxInvokerProvider.html" title="interface in jakarta.ws.rs.client">RxInvokerProvider</a>&lt;T extends <a href="RxInvoker.html" title="interface in jakarta.ws.rs.client">RxInvoker</a>&gt;</th>
+<td class="colLast">
+<div class="block"><a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client">SyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client">ResponseProcessingException</a></th>
+<td class="colLast">
+<div class="block">JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/client/package-tree.html
new file mode 100644
index 0000000..0243117
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/package-tree.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.client Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.client Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs.client</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="ClientBuilder.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> (implements jakarta.ws.rs.core.<a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;C&gt;)</li>
+<li class="circle">jakarta.ws.rs.client.<a href="Entity.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;T&gt;</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="../ProcessingException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ProcessingException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="AsyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="ClientRequestContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="ClientResponseContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="ClientResponseFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="../core/Configurable.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="Client.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Client</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="WebTarget.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">WebTarget</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="Invocation.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="InvocationCallback.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;RESPONSE&gt;</li>
+<li class="circle">jakarta.ws.rs.client.<a href="RxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;T&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="RxInvokerProvider.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.client.<a href="SyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/client/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/client/package-use.html
new file mode 100644
index 0000000..5a8d698
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/client/package-use.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs.client (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs.client (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs.client" class="title">Uses of Package<br>jakarta.ws.rs.client</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.client</a> used by <a href="package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AsyncInvoker.html#jakarta.ws.rs.client">AsyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Client.html#jakarta.ws.rs.client">Client</a></th>
+<td class="colLast">
+<div class="block">
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientBuilder.html#jakarta.ws.rs.client">ClientBuilder</a></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientRequestContext.html#jakarta.ws.rs.client">ClientRequestContext</a></th>
+<td class="colLast">
+<div class="block">Client request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientResponseContext.html#jakarta.ws.rs.client">ClientResponseContext</a></th>
+<td class="colLast">
+<div class="block">Client response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CompletionStageRxInvoker.html#jakarta.ws.rs.client">CompletionStageRxInvoker</a></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Entity.html#jakarta.ws.rs.client">Entity</a></th>
+<td class="colLast">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Invocation.html#jakarta.ws.rs.client">Invocation</a></th>
+<td class="colLast">
+<div class="block">A client request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Invocation.Builder.html#jakarta.ws.rs.client">Invocation.Builder</a></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/InvocationCallback.html#jakarta.ws.rs.client">InvocationCallback</a></th>
+<td class="colLast">
+<div class="block">Callback that can be implemented to receive the asynchronous processing events from the invocation processing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RxInvoker.html#jakarta.ws.rs.client">RxInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SyncInvoker.html#jakarta.ws.rs.client">SyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebTarget.html#jakarta.ws.rs.client">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.client</a> used by <a href="../sse/package-summary.html">jakarta.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebTarget.html#jakarta.ws.rs.sse">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/AsyncResponse.html b/apidocs/3.0.0/jakarta/ws/rs/container/AsyncResponse.html
new file mode 100644
index 0000000..2676058
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/AsyncResponse.html
@@ -0,0 +1,802 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>AsyncResponse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AsyncResponse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface AsyncResponse" class="title">Interface AsyncResponse</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">AsyncResponse</span></pre>
+<div class="block">An injectable JAX-RS asynchronous response that provides means for asynchronous server side response processing.
+ <p>
+ A new instance of <code>AsyncResponse</code> may be injected into a <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource
+ method</code></a> parameter using the <a href="Suspended.html" title="annotation in jakarta.ws.rs.container"><code>&#64;Suspended</code></a> annotation.
+ </p>
+ Each asynchronous response instance is bound to the running request and can be used to asynchronously provide the
+ request processing result or otherwise manipulate the suspended client connection. The available operations include:
+ <ul>
+ <li>updating suspended state data (time-out value, response ...)</li>
+ <li>resuming the suspended request processing</li>
+ <li>canceling the suspended request processing</li>
+ </ul>
+ <p>
+ Following example demonstrates the use of the <code>AsyncResponse</code> for asynchronous HTTP request processing:
+ </p>
+
+ <pre>
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     private static final BlockingQueue&lt;AsyncResponse&gt; suspended = new ArrayBlockingQueue&lt;AsyncResponse&gt;(5);
+
+     &#64;GET
+     public void readMessage(&#64;Suspended AsyncResponse ar) throws InterruptedException {
+         suspended.put(ar);
+     }
+
+     &#64;POST
+     public String postMessage(final String message) throws InterruptedException {
+         final AsyncResponse ar = suspended.take();
+         ar.resume(message); // resumes the processing of one GET request
+         return "Message sent";
+     }
+ }
+ </pre>
+ <p>
+ If the asynchronous response was suspended with a positive timeout value, and has not been explicitly resumed before
+ the timeout has expired, the processing will be resumed once the specified timeout threshold is reached, provided a
+ positive timeout value was set on the response.
+ </p>
+ <p>
+ By default a timed-out asynchronous response is resumed with a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> that has
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a> error response status
+ code set. This default behavior may be overridden by <a href="#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)"><code>setting</code></a>
+ a custom <a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><code>time-out handler</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_TIMEOUT">NO_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Constant specifying no suspend timeout value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel()">cancel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel(int)">cancel</a></span>&#8203;(int&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel(java.util.Date)">cancel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCancelled()">isCancelled</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the asynchronous response instance has been cancelled.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDone()">isDone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to has finished.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSuspended()">isSuspended</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the asynchronous response instance is in a suspended state.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;callbacks)</code></th>
+<td class="colLast">
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.lang.Object...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;callbacks)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume(java.lang.Object)">resume</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Resume the suspended request processing using the provided response data.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume(java.lang.Throwable)">resume</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Resume the suspended request processing using the provided throwable.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeout(long,java.util.concurrent.TimeUnit)">setTimeout</a></span>&#8203;(long&nbsp;time,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set/update the suspend timeout.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)">setTimeoutHandler</a></span>&#8203;(<a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="NO_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NO_TIMEOUT</h4>
+<pre>static final&nbsp;long NO_TIMEOUT</pre>
+<div class="block">Constant specifying no suspend timeout value.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.container.AsyncResponse.NO_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="resume(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resume</h4>
+<pre class="methodSignature">boolean&nbsp;resume&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;response)</pre>
+<div class="block">Resume the suspended request processing using the provided response data.
+
+ The provided response data can be of any Java type that can be returned from a <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>JAX-RS
+ resource method</code></a>.
+ <p>
+ The asynchronous response must be still in a <a href="#isSuspended()"><code>suspended</code></a> state for this method to succeed.
+ </p>
+ <p>
+ By executing this method, the request is guaranteed to complete either successfully or with an error. The data
+ processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a
+ JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O
+ container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific
+ callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an
+ error status being sent to the client and/or the connection being closed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - data to be sent back in response to the suspended request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been resumed, returns <code>false</code> in case the request processing
+ is not <a href="#isSuspended()"><code>suspended</code></a> and could not be resumed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#resume(java.lang.Throwable)"><code>resume(Throwable)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="resume(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resume</h4>
+<pre class="methodSignature">boolean&nbsp;resume&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;response)</pre>
+<div class="block">Resume the suspended request processing using the provided throwable.
+
+ For the provided throwable same rules apply as for an exception thrown by a <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>JAX-RS
+ resource method</code></a>.
+ <p>
+ By executing this method, the request is guaranteed to complete either successfully or with an error. The throwable
+ processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a
+ JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O
+ container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific
+ callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an
+ error status being sent to the client and/or the connection being closed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - an exception to be raised in response to the suspended request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the response has been resumed, returns <code>false</code> in case the response is not
+ <a href="#isSuspended()"><code>suspended</code></a> and could not be resumed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#resume(java.lang.Object)"><code>resume(Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel()</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a> error response.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a <code>cancel(...)</code> method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning <code>true</code>, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ <code>resume(...) method</code>) or resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case the request
+ processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel(int)"><code>cancel(int)</code></a>, 
+<a href="#cancel(java.util.Date)"><code>cancel(java.util.Date)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel&#8203;(int&nbsp;retryAfter)</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a> error response with a
+ <code>Retry-After</code> header set to the value provided by the method parameter.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a <code>cancel(...)</code> method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning <code>true</code>, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ <code>resume(...) method</code>) or resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a decimal integer number of seconds after the response is sent to the client that indicates how
+ long the service is expected to be unavailable to the requesting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case the request
+ processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel()"><code>cancel()</code></a>, 
+<a href="#cancel(java.util.Date)"><code>cancel(java.util.Date)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a> error response with a
+ <code>Retry-After</code> header set to the value provided by the method parameter.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a <code>cancel(...)</code> method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning <code>true</code>, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ <code>resume(...) method</code>) or resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date that indicates how long the service is expected to be unavailable to the requesting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case the request
+ processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel()"><code>cancel()</code></a>, 
+<a href="#cancel(int)"><code>cancel(int)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isSuspended()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSuspended</h4>
+<pre class="methodSignature">boolean&nbsp;isSuspended()</pre>
+<div class="block">Check if the asynchronous response instance is in a suspended state.
+
+ Method returns <code>true</code> if this asynchronous response is still suspended and has not finished processing yet
+ (either by resuming or canceling the response).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this asynchronous response is in a suspend state, <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isCancelled()"><code>isCancelled()</code></a>, 
+<a href="#isDone()"><code>isDone()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isCancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCancelled</h4>
+<pre class="methodSignature">boolean&nbsp;isCancelled()</pre>
+<div class="block">Check if the asynchronous response instance has been cancelled.
+
+ Method returns <code>true</code> if this asynchronous response has been canceled before completion.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this task was canceled before completion.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isSuspended()"><code>isSuspended()</code></a>, 
+<a href="#isDone()"><code>isDone()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isDone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDone</h4>
+<pre class="methodSignature">boolean&nbsp;isDone()</pre>
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to has finished.
+
+ Method returns <code>true</code> if the processing of a request this asynchronous response is bound to is finished.
+ <p>
+ The request processing may be finished due to a normal termination, a suspend timeout, or cancellation -- in all of
+ these cases, this method will return <code>true</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this execution context has finished processing.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isSuspended()"><code>isSuspended()</code></a>, 
+<a href="#isCancelled()"><code>isCancelled()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimeout</h4>
+<pre class="methodSignature">boolean&nbsp;setTimeout&#8203;(long&nbsp;time,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set/update the suspend timeout.
+ <p>
+ The new suspend timeout values override any timeout value previously specified. The asynchronous response must be
+ still in a <a href="#isSuspended()"><code>suspended</code></a> state for this method to succeed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - suspend timeout value in the give time <code>unit</code>. Value lower or equal to 0 causes the context to
+ suspend indefinitely.</dd>
+<dd><code>unit</code> - suspend timeout value time unit.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the suspend time out has been set, returns <code>false</code> in case the request processing is
+ not in the <a href="#isSuspended()"><code>suspended</code></a> state.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimeoutHandler</h4>
+<pre class="methodSignature">void&nbsp;setTimeoutHandler&#8203;(<a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</pre>
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.
+ <p>
+ The time-out handler will be invoked when the suspend period of this asynchronous response times out. The job of the
+ time-out handler is to resolve the time-out situation by either
+ </p>
+ <ul>
+ <li>resuming the suspended response</li>
+ <li>cancelling the suspended response</li>
+ <li>extending the suspend period by setting a new suspend time-out</li>
+ </ul>
+ <p>
+ Note that in case the response is suspended <a href="#NO_TIMEOUT"><code>indefinitely</code></a>, the time-out handler may never be
+ invoked.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - response time-out handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>collection of registered callback interfaces. If the callback class does not implement any recognized
+ callback interfaces, the returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the callback class is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;callbacks)</pre>
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback class.</dd>
+<dd><code>callbacks</code> - additional callback classes.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of registered classes and the callback interfaces registered for each class. If a callback class does not
+ implement any recognized callback interfaces, the associated collection of registered interfaces for the class will
+ be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the callback classes is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback instance implementing one or more of the recognized callback interfaces.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>collection of registered callback interfaces. If the callback class does not implement any recognized
+ callback interfaces, the returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the callback instance is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;callbacks)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback instance.</dd>
+<dd><code>callbacks</code> - additional callback instances.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of registered classes and the callback interfaces registered for each class. If a callback class does not
+ implement any recognized callback interfaces, the associated collection of registered interfaces for the class will
+ be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the callback instances is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/CompletionCallback.html b/apidocs/3.0.0/jakarta/ws/rs/container/CompletionCallback.html
new file mode 100644
index 0000000..0195128
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/CompletionCallback.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>CompletionCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompletionCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface CompletionCallback" class="title">Interface CompletionCallback</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">CompletionCallback</span></pre>
+<div class="block">A request processing callback that receives request processing completion events.
+ <p>
+ A completion callback is invoked when the whole request processing is over, i.e. once a response for the request has
+ been processed and sent back to the client or in when an unmapped exception or error is being propagated to the
+ container.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onComplete(java.lang.Throwable)">onComplete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">A completion callback notification method that will be invoked when the request processing is finished, after a
+ response is processed and is sent back to the client or when an unmapped throwable has been propagated to the hosting
+ I/O container.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onComplete(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onComplete</h4>
+<pre class="methodSignature">void&nbsp;onComplete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</pre>
+<div class="block">A completion callback notification method that will be invoked when the request processing is finished, after a
+ response is processed and is sent back to the client or when an unmapped throwable has been propagated to the hosting
+ I/O container.
+ <p>
+ An unmapped throwable is propagated to the hosting I/O container in case no <a href="../ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><code>exception mapper</code></a> has been found for a throwable indicating a request processing failure. In this case a
+ non-<code>null</code> unmapped throwable instance is passed to the method. Note that the throwable instance represents the
+ actual unmapped exception thrown during the request processing, before it has been wrapped into an I/O
+ container-specific exception that was used to propagate the throwable to the hosting I/O container.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - is <code>null</code>, if the request processing has completed with a response that has been sent to the
+ client. In case the request processing resulted in an unmapped exception or error that has been propagated to the
+ hosting I/O container, this parameter contains the unmapped exception instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ConnectionCallback.html b/apidocs/3.0.0/jakarta/ws/rs/container/ConnectionCallback.html
new file mode 100644
index 0000000..a0d2884
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ConnectionCallback.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ConnectionCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ConnectionCallback" class="title">Interface ConnectionCallback</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ConnectionCallback</span></pre>
+<div class="block">Asynchronous request processing lifecycle callback that receives connection related <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>asynchronous
+ response</code></a> lifecycle events.
+ <p>
+ Support for this type of callback by JAX-RS runtime is OPTIONAL.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisconnect(jakarta.ws.rs.container.AsyncResponse)">onDisconnect</a></span>&#8203;(<a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</code></th>
+<td class="colLast">
+<div class="block">This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onDisconnect(jakarta.ws.rs.container.AsyncResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onDisconnect</h4>
+<pre class="methodSignature">void&nbsp;onDisconnect&#8203;(<a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</pre>
+<div class="block">This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>disconnected</code> - asynchronous response for which the remote client connection has been lost.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionCallback.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestContext.html
new file mode 100644
index 0000000..0e289c3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestContext.html
@@ -0,0 +1,896 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ContainerRequestContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerRequestContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ContainerRequestContext" class="title">Interface ContainerRequestContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerRequestContext</span></pre>
+<div class="block">Container request filter context.
+
+ A mutable class that provides request-specific information for the filter, such as request URI, message headers,
+ message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#abortWith(jakarta.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity input stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../core/Request.html" title="interface in jakarta.ws.rs.core">Request</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable request information.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSecurityContext()">getSecurityContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable security context information for the current request.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriInfo()">getUriInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get request URI information.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is a non-empty entity input stream available in the request message.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.InputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity input stream.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMethod(java.lang.String)">setMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Set the request method.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRequestUri(java.net.URI)">setRequestUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI using the current base URI of the application to resolve the application-specific request URI
+ part.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRequestUri(java.net.URI,java.net.URI)">setRequestUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;baseUri,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific request URI part.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSecurityContext(jakarta.ws.rs.core.SecurityContext)">setSecurityContext</a></span>&#8203;(<a href="../core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Set a new injectable security context information for the current request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code> and expose all the attributes
+ available in the <code>ServletRequest</code>. Any modifications of the properties are also reflected in the set of
+ properties of the associated <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or <code>null</code> if no property exists matching the
+ given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of a property.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code> and expose all the attributes
+ available in the <code>ServletRequest</code>. Any modifications of the properties are also reflected in the set of
+ properties of the associated <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code> and expose all the attributes
+ available in the <code>ServletRequest</code>. Any modifications of the properties are also reflected in the set of
+ properties of the associated <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> to retrieve the property value will return <code>null</code>.
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code> and expose all the attributes
+ available in the <code>ServletRequest</code>. Any modifications of the properties are also reflected in the set of
+ properties of the associated <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriInfo</h4>
+<pre class="methodSignature"><a href="../core/UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a>&nbsp;getUriInfo()</pre>
+<div class="block">Get request URI information.
+
+ The returned object contains "live" view of the request URI information in a sense that any changes made to the
+ request URI using one of the <code>setRequestUri(...)</code> methods will be reflected in the previously returned
+ <a href="../core/UriInfo.html" title="interface in jakarta.ws.rs.core"><code>UriInfo</code></a> instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request URI information.</dd>
+</dl>
+</li>
+</ul>
+<a id="setRequestUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequestUri</h4>
+<pre class="methodSignature">void&nbsp;setRequestUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</pre>
+<div class="block">Set a new request URI using the current base URI of the application to resolve the application-specific request URI
+ part.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestUri</code> - new URI of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>pre-matching</code></a> request
+ filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setRequestUri(java.net.URI,java.net.URI)"><code>setRequestUri(java.net.URI, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setRequestUri(java.net.URI,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequestUri</h4>
+<pre class="methodSignature">void&nbsp;setRequestUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;baseUri,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</pre>
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific request URI part.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>baseUri</code> - base URI that will be used to resolve the application-specific part of the request URI.</dd>
+<dd><code>requestUri</code> - new URI of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>pre-matching</code></a> request
+ filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setRequestUri(java.net.URI)"><code>setRequestUri(java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequest()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre class="methodSignature"><a href="../core/Request.html" title="interface in jakarta.ws.rs.core">Request</a>&nbsp;getRequest()</pre>
+<div class="block">Get the injectable request information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>injectable request information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMethod(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMethod</h4>
+<pre class="methodSignature">void&nbsp;setMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Set the request method.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - new request method.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>pre-matching</code></a> request
+ filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable request headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of request headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then <code>null</code> is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other cases returns <code>-1</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no request entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according to their q-value, with highest preference
+ first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to <a href="../core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is a non-empty entity input stream available in the request message.
+
+ The method returns <code>true</code> if the entity is present, returns <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity input stream. The JAX-RS runtime is responsible for closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</pre>
+<div class="block">Set a new entity input stream. The JAX-RS runtime is responsible for closing the input stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - new entity input stream.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSecurityContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecurityContext</h4>
+<pre class="methodSignature"><a href="../core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a>&nbsp;getSecurityContext()</pre>
+<div class="block">Get the injectable security context information for the current request.
+
+ The <a href="../core/SecurityContext.html#getUserPrincipal()"><code>SecurityContext.getUserPrincipal()</code></a> must return <code>null</code> if the current request has not been
+ authenticated.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>injectable request security context information.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSecurityContext(jakarta.ws.rs.core.SecurityContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSecurityContext</h4>
+<pre class="methodSignature">void&nbsp;setSecurityContext&#8203;(<a href="../core/SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a>&nbsp;context)</pre>
+<div class="block">Set a new injectable security context information for the current request.
+
+ The <a href="../core/SecurityContext.html#getUserPrincipal()"><code>SecurityContext.getUserPrincipal()</code></a> must return <code>null</code> if the current request has not been
+ authenticated.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - new injectable request security context information.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+<a id="abortWith(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>abortWith</h4>
+<pre class="methodSignature">void&nbsp;abortWith&#8203;(<a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided response back to the client. The provided
+ response goes through the chain of applicable response filters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response to be sent back to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestFilter.html b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestFilter.html
new file mode 100644
index 0000000..ac16178
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerRequestFilter.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ContainerRequestFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerRequestFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ContainerRequestFilter" class="title">Interface ContainerRequestFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerRequestFilter</span></pre>
+<div class="block">An extension interface implemented by container request filters.
+ <p>
+ By default, i.e. if no <a href="../NameBinding.html" title="annotation in jakarta.ws.rs"><code>name binding</code></a> is applied to the filter implementation class,
+ the filter instance is applied globally, however only after the incoming request has been matched to a particular
+ resource by JAX-RS runtime. If there is a <a href="../NameBinding.html" title="annotation in jakarta.ws.rs"><code>&#64;NameBinding</code></a> annotation applied to the
+ filter, the filter will also be executed at the <i>post-match</i> request extension point, but only in case the
+ matched <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a> is bound to the same name-binding annotation.
+ </p>
+ <p>
+ In case the filter should be applied at the <i>pre-match</i> extension point, i.e. before any request matching has
+ been performed by JAX-RS runtime, the filter MUST be annotated with a <a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>&#64;PreMatching</code></a>
+ annotation.
+ </p>
+ <p>
+ Use a pre-match request filter to update the input to the JAX-RS matching algorithm, e.g., the HTTP method, Accept
+ header, return cached responses etc. Otherwise, the use of a request filter invoked at the <i>post-match</i> request
+ extension point (after a successful resource method matching) is recommended.
+ </p>
+ <p>
+ Filters implementing this interface must be annotated with <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> to be
+ discovered by the JAX-RS runtime. Container request filter instances may also be discovered and bound
+ <a href="DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>PreMatching</code></a>, 
+<a href="ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><code>ContainerResponseFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(jakarta.ws.rs.container.ContainerRequestContext)">filter</a></span>&#8203;(<a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(jakarta.ws.rs.container.ContainerRequestContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called before a request has been dispatched to a resource.
+
+ <p>
+ Filters in the filter chain are ordered according to their <code>jakarta.annotation.Priority</code> class-level annotation
+ value. If a request filter produces a response by calling <a href="ContainerRequestContext.html#abortWith(jakarta.ws.rs.core.Response)"><code>ContainerRequestContext.abortWith(jakarta.ws.rs.core.Response)</code></a> method, the
+ execution of the (either pre-match or post-match) request filter chain is stopped and the response is passed to the
+ corresponding response filter chain (either pre-match or post-match). For example, a pre-match caching filter may
+ produce a response in this way, which would effectively skip any post-match request filters as well as post-match
+ response filters. Note however that a responses produced in this manner would still be processed by the pre-match
+ response filter chain.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>PreMatching</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseContext.html
new file mode 100644
index 0000000..140adef
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseContext.html
@@ -0,0 +1,972 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ContainerResponseContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerResponseContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ContainerResponseContext" class="title">Interface ContainerResponseContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerResponseContext</span></pre>
+<div class="block">Container response filter context.
+
+ A mutable class that provides response-specific information for the filter, such as message headers, message entity
+ or request-scoped properties. The exposed setters allow modification of the exposed response-specific information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityAnnotations()">getEntityAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the annotations attached to the entity instance.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityClass()">getEntityClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the raw entity type information.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity output stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityType()">getEntityType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the generic entity type information.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the response.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.OutputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity output stream.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Set a new response status code.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code or -1 if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">void&nbsp;setStatus&#8203;(int&nbsp;code)</pre>
+<div class="block">Set a new response status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - new status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature"><a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information or <code>null</code> if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatusInfo</h4>
+<pre class="methodSignature">void&nbsp;setStatusInfo&#8203;(<a href="../core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</pre>
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusInfo</code> - the response status information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable response headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of response headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get a string view of header values associated with the message.
+
+ Changes in the underlying <a href="#getHeaders()"><code>headers map</code></a> are reflected in this view.
+ <p>
+ The method converts the non-string header values to strings using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the class of the value or using the
+ values <code>toString</code> method if a header delegate is not available.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one
+ is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the header value
+ class or using its <code>toString</code> method if a header delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then <code>null</code> is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case strings.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other cases returns -1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no response entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to a <a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core"><code>new cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature"><a href="../core/EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Never returns <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the for the relation link exists, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature"><a href="../core/Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature"><a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the response.
+
+ The method returns <code>true</code> if the entity is present, returns <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance.
+
+ Returns <code>null</code> if the message does not contain an entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an entity body.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getEntityClass()</pre>
+<div class="block">Get the raw entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>raw entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getEntityType()</pre>
+<div class="block">Get the generic entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>declared generic entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Set a new message entity. The existing entity <a href="#getEntityAnnotations()"><code>annotations</code></a> and <a href="#getMediaType()"><code>media type</code></a> are preserved.
+ <p>
+ It is the callers responsibility to wrap the actual entity with <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if
+ preservation of its generic type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)"><code>setEntity(Object, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+               <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set a new message entity, including the attached annotations and the media type.
+ <p>
+ It is the callers responsibility to wrap the actual entity with <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if
+ preservation of its generic type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dd><code>annotations</code> - annotations attached to the entity instance.</dd>
+<dd><code>mediaType</code> - entity media type.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object)"><code>setEntity(Object)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getEntityAnnotations()</pre>
+<div class="block">Get the annotations attached to the entity instance.
+ <p>
+ Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such
+ as the ones attached using
+ <a href="../core/Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)"><code>Response.ResponseBuilder.entity(Object, java.lang.annotation.Annotation[])</code></a> method as well as
+ the ones attached to the resource method that has returned the response). The entity instance annotations array does
+ not include annotations declared on the entity implementation class or its ancestors.
+ </p>
+ <p>
+ Note that container response filters invoked earlier in the filter chain may modify the entity annotations value, in
+ which case this getter method would return the last annotations value set by a container response filter invoked
+ earlier in the filter chain.
+ </p>
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ &#64;Path("my-resource")
+ public class MyResource {
+   private final Annotations[] extras = ... ;
+
+   &#64;GET
+   &#64;Custom
+   public String getAnnotatedMe() {
+     return Response.ok().entity("Annotated me", extras).build();
+   }
+   ...
+ }
+ </pre>
+ <p>
+ The container response context for a response returned from the <code>getMe()</code> method above would contain all the
+ annotations declared on the <code>getAnnotatedMe()</code> method (<code>@GET</code>, <code>@Custom</code>) as well as all the
+ annotations from the <code>extras</code> field, provided this value has not been replaced by any container response filter
+ invoked earlier.
+ </p>
+ <p>
+ Similarly:
+ </p>
+
+ <pre>
+ &#64;Custom
+ public class AnnotatedMe { ... }
+
+ &#64;Path("my-resource")
+ public class MyResource {
+   private final Annotations[] extras = ... ;
+
+   &#64;GET
+   public AnnotatedMe getMe() {
+     return Response.ok().entity(new AnnotatedMe(), extras).build();
+   }
+   ...
+ }
+ </pre>
+ <p>
+ Provided that the value has not been replaced by any container response filter invoked earlier, the container
+ response context for a response returned from the <code>getMe()</code> method above would contain all the annotations on
+ the <code>getMe()</code> method (<code>@GET</code>) as well as all the annotations from the <code>extras</code> field. It would
+ however not contain any annotations declared on the <code>AnnotatedMe</code> class.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations attached to the entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</pre>
+<div class="block">Set a new entity output stream. The JAX-RS runtime is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>outputStream</code> - new entity output stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseFilter.html b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseFilter.html
new file mode 100644
index 0000000..3796ce0
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ContainerResponseFilter.html
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ContainerResponseFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerResponseFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ContainerResponseFilter" class="title">Interface ContainerResponseFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerResponseFilter</span></pre>
+<div class="block">An extension interface implemented by container response filters.
+ <p>
+ By default, i.e. if no <a href="../NameBinding.html" title="annotation in jakarta.ws.rs"><code>name binding</code></a> is applied to the filter implementation class,
+ the filter instance is applied globally to any outgoing response. If there is a <code>@NameBinding</code> annotation
+ applied to the filter, the filter will only be executed for a response for which the request has been matched to a
+ <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a> AND the method or the whole custom
+ <a href="../core/Application.html" title="class in jakarta.ws.rs.core"><code>JAX-RS Application</code></a> class is bound to the same name-binding annotation.
+ </p>
+ <p>
+ Implement a name-bound response filter in cases when you want limit the filter functionality to a matched resource or
+ resource method. In other cases, when the filter should be applied globally to any outgoing response, implement an
+ unbound, global response filter.
+ </p>
+ <p>
+ Filters implementing this interface must be annotated with <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> to be
+ discovered by the JAX-RS runtime. Container response filter instances may also be discovered and bound
+ <a href="DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>ContainerRequestFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>request filter</code></a> or by a matched resource method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+            <a href="ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>request filter</code></a> or by a matched resource method.
+ <p>
+ Filters in the filter chain are ordered according to their <code>jakarta.annotation.Priority</code> class-level annotation
+ value.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dd><code>responseContext</code> - response context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/DynamicFeature.html b/apidocs/3.0.0/jakarta/ws/rs/container/DynamicFeature.html
new file mode 100644
index 0000000..636eaa7
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/DynamicFeature.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>DynamicFeature (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DynamicFeature (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicFeature.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface DynamicFeature" class="title">Interface DynamicFeature</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">DynamicFeature</span></pre>
+<div class="block">A JAX-RS meta-provider for dynamic registration of <i>post-matching</i> providers during a JAX-RS application setup
+ at deployment time.
+
+ Dynamic feature is used by JAX-RS runtime to register providers that shall be applied to a particular resource class
+ and method and overrides any annotation-based binding definitions defined on any registered resource filter or
+ interceptor instance.
+ <p>
+ Providers implementing this interface MAY be annotated with <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation
+ in order to be discovered by JAX-RS runtime when scanning for resources and providers. This provider types is
+ supported only as part of the Server API.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../NameBinding.html" title="annotation in jakarta.ws.rs"><code>NameBinding</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../core/FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a <a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core"><code>runtime configuration</code></a> scope of a particular
+ <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configure</h4>
+<pre class="methodSignature">void&nbsp;configure&#8203;(<a href="ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+               <a href="../core/FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</pre>
+<div class="block">A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a <a href="../core/Configuration.html" title="interface in jakarta.ws.rs.core"><code>runtime configuration</code></a> scope of a particular
+ <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>; i.e. the providers that should be dynamically bound
+ to the method.
+ <p>
+ The registered provider instances or classes are expected to be implementing one or more of the following interfaces:
+ </p>
+ <ul>
+ <li><a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>ContainerRequestFilter</code></a></li>
+ <li><a href="ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><code>ContainerResponseFilter</code></a></li>
+ <li><a href="../ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a></li>
+ <li><a href="../ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a></li>
+ <li><a href="../core/Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a></li>
+ </ul>
+ <p>
+ A provider instance or class that does not implement any of the interfaces above may be ignored by the JAX-RS
+ implementation. In such case a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/Level.html?is-external=true#WARNING" title="class or interface in java.util.logging" class="externalLink"><code>warning</code></a> message must be logged. JAX-RS
+ implementations may support additional provider contracts that can be registered using a dynamic feature concept.
+ </p>
+ <p>
+ Conceptually, this callback method is called during a <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>
+ discovery phase (typically once per each discovered resource or sub-resource method) to register provider instances
+ or classes in a <code>configuration</code> scope of each particular method identified by the supplied <a href="ResourceInfo.html" title="interface in jakarta.ws.rs.container"><code>resource information</code></a>. The responsibility of the feature is to properly update the supplied <code>configuration</code>
+ context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resourceInfo</code> - resource class and method information.</dd>
+<dd><code>context</code> - configurable resource or sub-resource method-level runtime context associated with the
+ <code>resourceInfo</code> in which the feature</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicFeature.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/PreMatching.html b/apidocs/3.0.0/jakarta/ws/rs/container/PreMatching.html
new file mode 100644
index 0000000..fbccd79
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/PreMatching.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>PreMatching (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PreMatching (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PreMatching.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Annotation Type PreMatching" class="title">Annotation Type PreMatching</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PreMatching</span></pre>
+<div class="block">Global binding annotation that can be applied to a <a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>container request filter</code></a> to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.
+ <p>
+ The JAX-RS runtime will apply the filters marked with the <code>@PreMatching</code> annotation globally to all resources,
+ before the incoming request has been matched to a particular resource method. Any <a href="../NameBinding.html" title="annotation in jakarta.ws.rs"><code>named binding annotations</code></a> will be ignored on a component annotated with the <code>@PreMatching</code> annotation.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PreMatching.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ResourceContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/ResourceContext.html
new file mode 100644
index 0000000..05f3563
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ResourceContext.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ResourceContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResourceContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ResourceContext" class="title">Interface ResourceContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ResourceContext</span></pre>
+<div class="block">The resource context provides access to instances of resource classes.
+ <p>
+ This interface can be injected using the <a href="../core/Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a> annotation.
+ </p>
+ <p>
+ The resource context can be utilized when instances of managed resource classes are to be returned by sub-resource
+ locator methods. Such instances will be injected and managed within the declared scope just like instances of root
+ resource classes.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResource(java.lang.Class)">getResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;resourceClass)</code></th>
+<td class="colLast">
+<div class="block">Get a resolved instance of a resource or sub-resource class.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initResource(T)">initResource</a></span>&#8203;(T&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Initialize the resource or sub-resource instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;getResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;resourceClass)</pre>
+<div class="block">Get a resolved instance of a resource or sub-resource class.
+ <p>
+ The resolved resource instance is properly initialized in the context of the current request processing scope. The
+ scope of the resolved resource instance depends on the managing container. For resources managed by JAX-RS container
+ the default scope is per-request.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the resource class.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resourceClass</code> - the resource class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance if it could be resolved, otherwise <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="initResource(java.lang.Object)">
+<!--   -->
+</a><a id="initResource(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>initResource</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;initResource&#8203;(T&nbsp;resource)</pre>
+<div class="block">Initialize the resource or sub-resource instance.
+
+ All JAX-RS injectable fields in the resource instance will be properly initialized in the context of the current
+ request processing scope.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - resource instance type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - resource instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>initialized (same) resource instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/ResourceInfo.html b/apidocs/3.0.0/jakarta/ws/rs/container/ResourceInfo.html
new file mode 100644
index 0000000..7a5f125
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/ResourceInfo.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ResourceInfo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResourceInfo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface ResourceInfo" class="title">Interface ResourceInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ResourceInfo</span></pre>
+<div class="block">An injectable class to access the resource class and resource method matched by the current request. Methods in this
+ class MAY return <code>null</code> if a resource class and method have not been matched, e.g. in a standalone,
+ pre-matching <a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>ContainerRequestFilter</code></a> that was not provided by a post-matching <a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><code>PreMatching</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceClass()">getResourceClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the resource class that is the target of a request, or <code>null</code> if this information is not available.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceMethod()">getResourceMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the resource method that is the target of a request, or <code>null</code> if this information is not available.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResourceMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResourceMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;getResourceMethod()</pre>
+<div class="block">Get the resource method that is the target of a request, or <code>null</code> if this information is not available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource method instance or null</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getResourceClass()"><code>getResourceClass()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getResourceClass()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResourceClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getResourceClass()</pre>
+<div class="block">Get the resource class that is the target of a request, or <code>null</code> if this information is not available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource class instance or null</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getResourceMethod()"><code>getResourceMethod()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/Suspended.html b/apidocs/3.0.0/jakarta/ws/rs/container/Suspended.html
new file mode 100644
index 0000000..0a1d0e8
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/Suspended.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Suspended (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Suspended (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Suspended.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Annotation Type Suspended" class="title">Annotation Type Suspended</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Suspended</span></pre>
+<div class="block">Inject a suspended <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked JAX-RS <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource
+ or sub-resource method</code></a>.
+
+ The injected <code>AsyncResponse</code> instance is bound to the processing of the active request and can be used to
+ resume the request processing when a response is available.
+ <p>
+ By default there is <a href="AsyncResponse.html#NO_TIMEOUT"><code>no suspend timeout set</code></a> and the asynchronous response is
+ suspended indefinitely. The suspend timeout as well as a custom <a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><code>timeout handler</code></a> can be
+ specified programmatically using the <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>AsyncResponse.setTimeout(long, TimeUnit)</code></a> and
+ <a href="AsyncResponse.html#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)"><code>AsyncResponse.setTimeoutHandler(TimeoutHandler)</code></a> methods. For example:
+ </p>
+
+ <pre>
+  &#64;Stateless
+  &#64;Path("/")
+  public class MyEjbResource {
+    &hellip;
+    &#64;GET
+    &#64;Asynchronous
+    public void longRunningOperation(&#64;Suspended AsyncResponse ar) {
+      ar.setTimeoutHandler(customHandler);
+      ar.setTimeout(10, TimeUnit.SECONDS);
+      final String result = executeLongRunningOperation();
+      ar.resume(result);
+    }
+
+    private String executeLongRunningOperation() { &hellip; }
+  }
+ </pre>
+ <p>
+ A resource or sub-resource method that injects a suspended instance of an <code>AsyncResponse</code> using the
+ <code>@Suspended</code> annotation is expected be declared to return <code>void</code> type. Methods that inject asynchronous
+ response instance using the <code>@Suspended</code> annotation and declare a return type other than <code>void</code> MUST be
+ detected by the JAX-RS runtime and a warning message MUST be logged. Any response value returned from such resource
+ or sub-resource method MUST be ignored by the framework:
+ </p>
+
+ <pre>
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     &hellip;
+     &#64;GET
+     public String readMessage(&#64;Suspended AsyncResponse ar) {
+         suspended.put(ar);
+         return "This response will be ignored.";
+     }
+     &hellip;
+ }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Suspended.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/TimeoutHandler.html b/apidocs/3.0.0/jakarta/ws/rs/container/TimeoutHandler.html
new file mode 100644
index 0000000..82fa555
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/TimeoutHandler.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>TimeoutHandler (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeoutHandler (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeoutHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.container</a></div>
+<h2 title="Interface TimeoutHandler" class="title">Interface TimeoutHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">TimeoutHandler</span></pre>
+<div class="block">Asynchronous response suspend time-out handler.
+
+ JAX-RS users may utilize this callback interface to provide custom resolution of time-out events.
+ <p>
+ By default, JAX-RS runtime generates a <a href="../WebApplicationException.html" title="class in jakarta.ws.rs"><code>WebApplicationException</code></a> with a
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a> error response status
+ code. A custom time-out handler may be <a href="AsyncResponse.html#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)"><code>set</code></a> on an asynchronous
+ response instance to provide custom time-out event resolution.
+ </p>
+ <p>
+ In case of a suspend time-out event, a custom time-out handler takes typically one of the following actions:
+ </p>
+ <ul>
+ <li>Resumes the suspended asynchronous response using a <a href="AsyncResponse.html#resume(java.lang.Object)"><code>custom response</code></a> or a
+ <a href="AsyncResponse.html#resume(java.lang.Throwable)"><code>custom exception</code></a></li>
+ <li>Cancels the response by calling one of the <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> <code>cancel(...)</code> methods.</li>
+ <li>Extends the suspend period of the response by
+ <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>setting a new suspend time-out</code></a></li>
+ </ul>
+ <p>
+ If the registered time-out handler does not take any of the actions above, the default time-out event processing
+ continues and the response is resumed with a generated <code>WebApplicationException</code> containing the HTTP 503 status
+ code.
+ </p>
+ <p>
+ Following example illustrates the use of a custom <code>TimeoutHandler</code>:
+ </p>
+
+ <pre>
+ public class MyTimeoutHandler implements TimeoutHandler {
+     &hellip;
+     public void handleTimeout(AsyncResponse ar) {
+         if (keepSuspended) {
+             ar.setTimeout(10, SECONDS);
+         } else if (cancel) {
+             ar.cancel(retryPeriod);
+         } else {
+             ar.resume(defaultResponse);
+         }
+     }
+     &hellip;
+ }
+
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     &hellip;
+     &#64;GET
+     public void readMessage(&#64;Suspended AsyncResponse ar) {
+         ar.setTimeoutHandler(new MyTimeoutHandler());
+         suspended.put(ar);
+     }
+     &hellip;
+ }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleTimeout(jakarta.ws.rs.container.AsyncResponse)">handleTimeout</a></span>&#8203;(<a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</code></th>
+<td class="colLast">
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="handleTimeout(jakarta.ws.rs.container.AsyncResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleTimeout</h4>
+<pre class="methodSignature">void&nbsp;handleTimeout&#8203;(<a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</pre>
+<div class="block">Invoked when the suspended asynchronous response is about to time out.
+
+ Implementing time-out handlers may use the callback method to change the default time-out strategy defined by JAX-RS
+ specification (see <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> API documentation).
+ <p>
+ A custom time-out handler may decide to either
+ </p>
+ <ul>
+ <li>resume the suspended response using one of it's <code>resume(...)</code> methods,</li>
+ <li>cancel the suspended response using one of it's <code>cancel(...)</code> methods, or</li>
+ <li>extend the suspend period by <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>setting a new
+ suspend time-out</code></a></li>
+ </ul>
+ In case the time-out handler does not take any of the actions mentioned above, a default time-out strategy is
+ executed by the JAX-RS runtime.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>asyncResponse</code> - suspended asynchronous response that is timing out.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeoutHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/AsyncResponse.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/AsyncResponse.html
new file mode 100644
index 0000000..0390def
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/AsyncResponse.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.AsyncResponse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.AsyncResponse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.AsyncResponse" class="title">Uses of Interface<br>jakarta.ws.rs.container.AsyncResponse</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a> in <a href="../package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TimeoutHandler.</span><code><span class="memberNameLink"><a href="../TimeoutHandler.html#handleTimeout(jakarta.ws.rs.container.AsyncResponse)">handleTimeout</a></span>&#8203;(<a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</code></th>
+<td class="colLast">
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConnectionCallback.</span><code><span class="memberNameLink"><a href="../ConnectionCallback.html#onDisconnect(jakarta.ws.rs.container.AsyncResponse)">onDisconnect</a></span>&#8203;(<a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</code></th>
+<td class="colLast">
+<div class="block">This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncResponse.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/CompletionCallback.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/CompletionCallback.html
new file mode 100644
index 0000000..6ef9f63
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/CompletionCallback.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.CompletionCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.CompletionCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionCallback.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.CompletionCallback" class="title">Uses of Interface<br>jakarta.ws.rs.container.CompletionCallback</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.CompletionCallback</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionCallback.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ConnectionCallback.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ConnectionCallback.html
new file mode 100644
index 0000000..2765f94
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ConnectionCallback.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ConnectionCallback (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ConnectionCallback (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConnectionCallback.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ConnectionCallback" class="title">Uses of Interface<br>jakarta.ws.rs.container.ConnectionCallback</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.ConnectionCallback</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConnectionCallback.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestContext.html
new file mode 100644
index 0000000..cb4dded
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestContext.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ContainerRequestContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ContainerRequestContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ContainerRequestContext" class="title">Uses of Interface<br>jakarta.ws.rs.container.ContainerRequestContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a> in <a href="../package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestFilter.</span><code><span class="memberNameLink"><a href="../ContainerRequestFilter.html#filter(jakarta.ws.rs.container.ContainerRequestContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseFilter.</span><code><span class="memberNameLink"><a href="../ContainerResponseFilter.html#filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="../ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>request filter</code></a> or by a matched resource method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestFilter.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestFilter.html
new file mode 100644
index 0000000..951bf5b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerRequestFilter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ContainerRequestFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ContainerRequestFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ContainerRequestFilter" class="title">Uses of Interface<br>jakarta.ws.rs.container.ContainerRequestFilter</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.ContainerRequestFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseContext.html
new file mode 100644
index 0000000..81e2f70
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseContext.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ContainerResponseContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ContainerResponseContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ContainerResponseContext" class="title">Uses of Interface<br>jakarta.ws.rs.container.ContainerResponseContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a> in <a href="../package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseFilter.</span><code><span class="memberNameLink"><a href="../ContainerResponseFilter.html#filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request (either by a <a href="../ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>request filter</code></a> or by a matched resource method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseFilter.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseFilter.html
new file mode 100644
index 0000000..1fc7a5b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ContainerResponseFilter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ContainerResponseFilter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ContainerResponseFilter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ContainerResponseFilter" class="title">Uses of Interface<br>jakarta.ws.rs.container.ContainerResponseFilter</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.ContainerResponseFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/DynamicFeature.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/DynamicFeature.html
new file mode 100644
index 0000000..592fa15
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/DynamicFeature.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.DynamicFeature (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.DynamicFeature (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DynamicFeature.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.DynamicFeature" class="title">Uses of Interface<br>jakarta.ws.rs.container.DynamicFeature</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.DynamicFeature</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DynamicFeature.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/PreMatching.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/PreMatching.html
new file mode 100644
index 0000000..bdb65d6
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/PreMatching.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.container.PreMatching (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.container.PreMatching (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PreMatching.html" title="annotation in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.container.PreMatching" class="title">Uses of Class<br>jakarta.ws.rs.container.PreMatching</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.PreMatching</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PreMatching.html" title="annotation in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceContext.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceContext.html
new file mode 100644
index 0000000..bc93db6
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceContext.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ResourceContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ResourceContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ResourceContext" class="title">Uses of Interface<br>jakarta.ws.rs.container.ResourceContext</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.ResourceContext</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceContext.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceInfo.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceInfo.html
new file mode 100644
index 0000000..9b54172
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/ResourceInfo.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.ResourceInfo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.ResourceInfo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.ResourceInfo" class="title">Uses of Interface<br>jakarta.ws.rs.container.ResourceInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a> in <a href="../package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DynamicFeature.</span><code><span class="memberNameLink"><a href="../DynamicFeature.html#configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../../core/FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a <a href="../../core/Configuration.html" title="interface in jakarta.ws.rs.core"><code>runtime configuration</code></a> scope of a particular
+ <a href="../../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceInfo.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/Suspended.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/Suspended.html
new file mode 100644
index 0000000..980b457
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/Suspended.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.container.Suspended (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.container.Suspended (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Suspended.html" title="annotation in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.container.Suspended" class="title">Uses of Class<br>jakarta.ws.rs.container.Suspended</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.container.Suspended</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Suspended.html" title="annotation in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/class-use/TimeoutHandler.html b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/TimeoutHandler.html
new file mode 100644
index 0000000..bedbc40
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/class-use/TimeoutHandler.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.container.TimeoutHandler (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.container.TimeoutHandler (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.container.TimeoutHandler" class="title">Uses of Interface<br>jakarta.ws.rs.container.TimeoutHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a> in <a href="../package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncResponse.</span><code><span class="memberNameLink"><a href="../AsyncResponse.html#setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)">setTimeoutHandler</a></span>&#8203;(<a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TimeoutHandler.html" title="interface in jakarta.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/container/package-summary.html
new file mode 100644
index 0000000..3f40d55
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/package-summary.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.container (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.container (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs.container</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Container-specific JAX-RS API.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container">AsyncResponse</a></th>
+<td class="colLast">
+<div class="block">An injectable JAX-RS asynchronous response that provides means for asynchronous server side response processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CompletionCallback.html" title="interface in jakarta.ws.rs.container">CompletionCallback</a></th>
+<td class="colLast">
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConnectionCallback.html" title="interface in jakarta.ws.rs.container">ConnectionCallback</a></th>
+<td class="colLast">
+<div class="block">Asynchronous request processing lifecycle callback that receives connection related <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>asynchronous
+ response</code></a> lifecycle events.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container">ContainerRequestContext</a></th>
+<td class="colLast">
+<div class="block">Container request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container">ContainerRequestFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by container request filters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ContainerResponseContext.html" title="interface in jakarta.ws.rs.container">ContainerResponseContext</a></th>
+<td class="colLast">
+<div class="block">Container response filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container">ContainerResponseFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by container response filters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DynamicFeature.html" title="interface in jakarta.ws.rs.container">DynamicFeature</a></th>
+<td class="colLast">
+<div class="block">A JAX-RS meta-provider for dynamic registration of <i>post-matching</i> providers during a JAX-RS application setup
+ at deployment time.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ResourceContext.html" title="interface in jakarta.ws.rs.container">ResourceContext</a></th>
+<td class="colLast">
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable class to access the resource class and resource method matched by the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container">TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PreMatching.html" title="annotation in jakarta.ws.rs.container">PreMatching</a></th>
+<td class="colLast">
+<div class="block">Global binding annotation that can be applied to a <a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><code>container request filter</code></a> to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Suspended.html" title="annotation in jakarta.ws.rs.container">Suspended</a></th>
+<td class="colLast">
+<div class="block">Inject a suspended <a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked JAX-RS <a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource
+ or sub-resource method</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/container/package-tree.html
new file mode 100644
index 0000000..36d3f8e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/package-tree.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.container Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.container Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs.container</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.container.<a href="AsyncResponse.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="CompletionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ConnectionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ContainerRequestContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ContainerResponseContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="DynamicFeature.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ResourceContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="ResourceInfo.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.container.<a href="PreMatching.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.container.<a href="Suspended.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">Suspended</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/container/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/container/package-use.html
new file mode 100644
index 0000000..ef5b6bc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/container/package-use.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs.container (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs.container (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs.container" class="title">Uses of Package<br>jakarta.ws.rs.container</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.container</a> used by <a href="package-summary.html">jakarta.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AsyncResponse.html#jakarta.ws.rs.container">AsyncResponse</a></th>
+<td class="colLast">
+<div class="block">An injectable JAX-RS asynchronous response that provides means for asynchronous server side response processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ContainerRequestContext.html#jakarta.ws.rs.container">ContainerRequestContext</a></th>
+<td class="colLast">
+<div class="block">Container request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ContainerResponseContext.html#jakarta.ws.rs.container">ContainerResponseContext</a></th>
+<td class="colLast">
+<div class="block">Container response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ResourceInfo.html#jakarta.ws.rs.container">ResourceInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable class to access the resource class and resource method matched by the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TimeoutHandler.html#jakarta.ws.rs.container">TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/AbstractMultivaluedMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/AbstractMultivaluedMap.html
new file mode 100644
index 0000000..27abc1a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/AbstractMultivaluedMap.html
@@ -0,0 +1,999 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>AbstractMultivaluedMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractMultivaluedMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class AbstractMultivaluedMap" class="title">Class AbstractMultivaluedMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.AbstractMultivaluedMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">AbstractMultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#jakarta.ws.rs.core.AbstractMultivaluedMap">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#store">store</a></span></code></th>
+<td class="colLast">
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Initialize the backing store in the abstract parent multivalued map implementation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">
+ Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">
+ Add all the values from the supplied value list to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">
+ Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+        <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">
+ Add a value to the first position in the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirstNull(java.util.List)">addFirstNull</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">
+ Define the behavior for adding a <code>null</code> values to the first position in the value list.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNull(java.util.List)">addNull</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">
+ Define the behavior for adding a <code>null</code> values to the value list.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsKey(java.lang.Object)">containsKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsValue(java.lang.Object)">containsValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entrySet()">entrySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Object)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues(K)">getValues</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">
+ Return a non-null list of values for a given key.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keySet()">keySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(K,java.util.List)">put</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putAll(java.util.Map)">putAll</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">
+ Set the value for the key to be a one item list consisting of the supplied value.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(java.lang.Object)">remove</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="store">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>store</h4>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt; store</pre>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractMultivaluedMap</h4>
+<pre>public&nbsp;AbstractMultivaluedMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</pre>
+<div class="block">Initialize the backing store in the abstract parent multivalued map implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>store</code> - the backing <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> to be used as a [key, multi-value] store. Must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the underlying <code>store</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;putSingle&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                            <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block"><p>
+ Set the value for the key to be a one item list consisting of the supplied value. Any existing values will be
+ replaced.
+ </p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value of <code>null</code> is ignored and not added to
+ the purged value list. As a result of such operation, empty value list would be registered for the supplied key.
+ Overriding implementations may modify this behavior by redefining the <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#putSingle(K,V)">putSingle</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key. If the value is <code>null</code> it will be ignored.</dd>
+</dl>
+</li>
+</ul>
+<a id="addNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addNull&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block"><p>
+ Define the behavior for adding a <code>null</code> values to the value list.
+ </p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored. Overriding implementations may modify
+ this behavior by providing their own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirstNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirstNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addFirstNull&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block"><p>
+ Define the behavior for adding a <code>null</code> values to the first position in the value list.
+ </p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored. Overriding implementations may modify
+ this behavior by providing their own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;add&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block"><p>
+ Add a value to the current list of values for the supplied key.
+ </p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value of <code>null</code> is ignored and not added to
+ the value list. Overriding implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#add(K,V)">add</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block"><p>
+ Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty,
+ method returns immediately. Method throws a <code>NullPointerException</code> if the supplied array of values is
+ <code>null</code>.
+ </p>
+ NOTE: This implementation ignores <code>null</code> values; Any of the supplied values of <code>null</code> is ignored and not
+ added to the value list. Overriding implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,V...)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied array of new values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block"><p>
+ Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied
+ value list is empty, method returns immediately. Method throws a <code>NullPointerException</code> if the supplied array
+ of values is <code>null</code>.
+ </p>
+ NOTE: This implementation ignores <code>null</code> values; Any <code>null</code> value in the supplied value list is ignored
+ and not added to the value list. Overriding implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,java.util.List)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied value list is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#getFirst(K)">MultivaluedMap</a></code></span></div>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#getFirst(K)">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                           <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block"><p>
+ Add a value to the first position in the current list of values for the supplied key.
+ </p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value of <code>null</code> is ignored and not added to
+ the purged value list. Overriding implementations may modify this behavior by redefining the
+ <a href="#addFirstNull(java.util.List)"><code>addFirstNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addFirst(K,V)">addFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValues(java.lang.Object)">
+<!--   -->
+</a><a id="getValues(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;getValues&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block"><p>
+ Return a non-null list of values for a given key. The returned list may be empty.
+ </p>
+ If there is no entry for the key in the map, a new empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> instance is created, registered within the map
+ to hold the values of the key and returned from the method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value list registered with the key. The method is guaranteed to never return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">
+ <p>
+ This implementation delegates the method call to to the the underlying [key, multi-value] store.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a hash code value for the underlying [key, multi-value] store.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<div class="block">
+ <p>
+ This implementation delegates the method call to to the the underlying [key, multi-value] store.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the specified object is equal to the underlying [key, multi-value] store, <code>false</code>
+ otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;values()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#values()" title="class or interface in java.util" class="externalLink">values</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="size()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="remove(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;remove&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="putAll(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putAll</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;putAll&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll(java.util.Map)" title="class or interface in java.util" class="externalLink">putAll</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="put(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="put(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;put&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put(K,V)" title="class or interface in java.util" class="externalLink">put</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="keySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keySet</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;&nbsp;keySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#keySet()" title="class or interface in java.util" class="externalLink">keySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#get(java.lang.Object)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="entrySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entrySet</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;&nbsp;entrySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet()" title="class or interface in java.util" class="externalLink">entrySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsValue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsValue</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsValue</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsKey(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsKey</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsKey</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="clear()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">MultivaluedMap</a></code></span></div>
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the
+ values associated with each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>omap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Application.html b/apidocs/3.0.0/jakarta/ws/rs/core/Application.html
new file mode 100644
index 0000000..6852821
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Application.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Application (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Application (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Application" class="title">Class Application</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Application</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Application</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Defines the components of a JAX-RS application and supplies additional meta-data. A JAX-RS application or
+ implementation supplies a concrete subclass of this abstract class.
+ <p>
+ The implementation-created instance of an Application subclass may be injected into resource classes and providers
+ using <a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>.
+ </p>
+ <p>
+ In case any of the <code>Application</code> subclass methods or it's constructor throws a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>RuntimeException</code></a>, the
+ deployment of the application SHOULD be aborted with a failure.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Application</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClasses()">getClasses</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> classes.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of custom application-wide properties.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSingletons()">getSingletons</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instances.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Application</h4>
+<pre>public&nbsp;Application()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getClasses()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClasses</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;getClasses()</pre>
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> classes.
+
+ The default life-cycle for resource class instances is per-request. The default life-cycle for providers (registered
+ directly or via a feature) is singleton.
+ <p>
+ Implementations should warn about and ignore classes that do not conform to the requirements of root resource or
+ provider/feature classes. Implementations should warn about and ignore classes for which <a href="#getSingletons()"><code>getSingletons()</code></a>
+ returns an instance. Implementations MUST NOT modify the returned set.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a set of root resource and provider classes. Returning <code>null</code> is equivalent to returning an empty set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSingletons()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSingletons</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getSingletons()</pre>
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instances.
+
+ Fields and properties of returned instances are injected with their declared dependencies (see <a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>) by
+ the runtime prior to use.
+ <p>
+ Implementations should warn about and ignore classes that do not conform to the requirements of root resource or
+ provider classes. Implementations should flag an error if the returned set includes more than one instance of the
+ same class. Implementations MUST NOT modify the returned set.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a set of root resource and provider instances. Returning <code>null</code> is equivalent to returning an empty
+ set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getProperties()</pre>
+<div class="block">Get a map of custom application-wide properties.
+ <p>
+ The returned properties are reflected in the application <a href="Configuration.html" title="interface in jakarta.ws.rs.core"><code>configuration</code></a> passed to the
+ server-side features or injected into server-side JAX-RS components.
+ </p>
+ <p>
+ The set of returned properties may be further extended or customized at deployment time using container-specific
+ features and deployment descriptors. For example, in a Servlet-based deployment scenario, web application's
+ <code>&lt;context-param&gt;</code> and Servlet <code>&lt;init-param&gt;</code> values may be used to extend or override values of the
+ properties programmatically returned by this method.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a map of custom application-wide properties. Returning <code>null</code> is equivalent to returning an empty set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/CacheControl.html b/apidocs/3.0.0/jakarta/ws/rs/core/CacheControl.html
new file mode 100644
index 0000000..82ad545
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/CacheControl.html
@@ -0,0 +1,882 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>CacheControl (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CacheControl (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":42,"i22":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CacheControl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class CacheControl" class="title">Class CacheControl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.CacheControl</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">CacheControl</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 section 14.9</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CacheControl</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of CacheControl.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares object argument to this cache control to see if they are the same considering all property values.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCacheExtension()">getCacheExtension</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxAge()">getMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNoCacheFields()">getNoCacheFields</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrivateFields()">getPrivateFields</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSMaxAge()">getSMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hash code from cache control properties.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMustRevalidate()">isMustRevalidate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoCache()">isNoCache</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoStore()">isNoStore</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoTransform()">isNoTransform</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPrivate()">isPrivate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the private cache control directive.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isProxyRevalidate()">isProxyRevalidate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxAge(int)">setMaxAge</a></span>&#8203;(int&nbsp;maxAge)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMustRevalidate(boolean)">setMustRevalidate</a></span>&#8203;(boolean&nbsp;mustRevalidate)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoCache(boolean)">setNoCache</a></span>&#8203;(boolean&nbsp;noCache)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoStore(boolean)">setNoStore</a></span>&#8203;(boolean&nbsp;noStore)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoTransform(boolean)">setNoTransform</a></span>&#8203;(boolean&nbsp;noTransform)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPrivate(boolean)">setPrivate</a></span>&#8203;(boolean&nbsp;flag)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the private cache control directive.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProxyRevalidate(boolean)">setProxyRevalidate</a></span>&#8203;(boolean&nbsp;proxyRevalidate)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSMaxAge(int)">setSMaxAge</a></span>&#8203;(int&nbsp;sMaxAge)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version.</div>
+</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static <a href="CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CacheControl</h4>
+<pre>public&nbsp;CacheControl()</pre>
+<div class="block">Create a new instance of CacheControl. The new instance will have the following default settings:
+
+ <ul>
+ <li>private = false</li>
+ <li>noCache = false</li>
+ <li>noStore = false</li>
+ <li>noTransform = true</li>
+ <li>mustRevalidate = false</li>
+ <li>proxyRevalidate = false</li>
+ <li>An empty list of private fields</li>
+ <li>An empty list of no-cache fields</li>
+ <li>An empty map of cache extensions</li>
+ </ul></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public static&nbsp;<a href="CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.</div>
+</div>
+<div class="block">Creates a new instance of CacheControl by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cache control string</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created CacheControl</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is null</dd>
+</dl>
+</li>
+</ul>
+<a id="isMustRevalidate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMustRevalidate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isMustRevalidate()</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the must-revalidate cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMustRevalidate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMustRevalidate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMustRevalidate&#8203;(boolean&nbsp;mustRevalidate)</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mustRevalidate</code> - true if the must-revalidate cache control directive should be included in the response, false
+ otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isProxyRevalidate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isProxyRevalidate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isProxyRevalidate()</pre>
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the proxy-revalidate cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProxyRevalidate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProxyRevalidate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setProxyRevalidate&#8203;(boolean&nbsp;proxyRevalidate)</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>proxyRevalidate</code> - true if the proxy-revalidate cache control directive should be included in the response, false
+ otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxAge()</pre>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the max-age cache control directive, -1 if the directive is disabled.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxAge(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxAge</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxAge&#8203;(int&nbsp;maxAge)</pre>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxAge</code> - the value of the max-age cache control directive, a value of -1 will disable the directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getSMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getSMaxAge()</pre>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the s-maxage cache control directive, -1 if the directive is disabled.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setSMaxAge(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSMaxAge</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setSMaxAge&#8203;(int&nbsp;sMaxAge)</pre>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sMaxAge</code> - the value of the s-maxage cache control directive, a value of -1 will disable the directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getNoCacheFields()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNoCacheFields</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getNoCacheFields()</pre>
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable list of field-names that will form the value of the no-cache cache control directive. An empty list
+ results in a bare no-cache directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isNoCache()"><code>isNoCache()</code></a>, 
+<a href="#setNoCache(boolean)"><code>setNoCache(boolean)</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoCache(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoCache</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoCache&#8203;(boolean&nbsp;noCache)</pre>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noCache</code> - true if the no-cache cache control directive should be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getNoCacheFields()"><code>getNoCacheFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoCache()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoCache</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoCache()</pre>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-cache cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getNoCacheFields()"><code>getNoCacheFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isPrivate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPrivate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isPrivate()</pre>
+<div class="block">Corresponds to the private cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the private cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPrivateFields()"><code>getPrivateFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPrivateFields()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrivateFields</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPrivateFields()</pre>
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable list of field-names that will form the value of the private cache control directive. An empty list
+ results in a bare no-cache directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isPrivate()"><code>isPrivate()</code></a>, 
+<a href="#setPrivate(boolean)"><code>setPrivate(boolean)</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setPrivate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrivate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setPrivate&#8203;(boolean&nbsp;flag)</pre>
+<div class="block">Corresponds to the private cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>flag</code> - true if the private cache control directive should be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPrivateFields()"><code>getPrivateFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoTransform()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoTransform</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoTransform()</pre>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-transform cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5">HTTP/1.1 section 14.9.5</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoTransform(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoTransform</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoTransform&#8203;(boolean&nbsp;noTransform)</pre>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noTransform</code> - true if the no-transform cache control directive should be included in the response, false
+ otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5">HTTP/1.1 section 14.9.5</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoStore()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoStore</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoStore()</pre>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-store cache control directive will be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2">HTTP/1.1 section 14.9.2</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoStore(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoStore</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoStore&#8203;(boolean&nbsp;noStore)</pre>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noStore</code> - true if the no-store cache control directive should be included in the response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2">HTTP/1.1 section 14.9.2</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getCacheExtension()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCacheExtension</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getCacheExtension()</pre>
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable map of cache control extension names and their values. If a key has a null value, it will appear as
+ a bare directive. If a key has a value that contains no whitespace then the directive will appear as a simple
+ name=value pair. If a key has a value that contains whitespace then the directive will appear as a quoted
+ name="value" pair.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.6">HTTP/1.1 section 14.9.6</a></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.</div>
+</div>
+<div class="block">Convert the cache control to a string suitable for use as the value of the corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cache control</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hash code from cache control properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hashCode</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares object argument to this cache control to see if they are the same considering all property values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two cache controls are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CacheControl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Configurable.html b/apidocs/3.0.0/jakarta/ws/rs/core/Configurable.html
new file mode 100644
index 0000000..fd0a835
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Configurable.html
@@ -0,0 +1,715 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Configurable (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Configurable (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configurable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Configurable" class="title">Interface Configurable&lt;C extends Configurable&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>C</code> - generic configurable Java type</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></code>, <code><a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></code>, <code><a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Configurable&lt;C extends Configurable&gt;</span></pre>
+<div class="block">Represents a client or server-side configurable context in JAX-RS.
+
+ A configurable context can be used to define the JAX-RS components as well as additional meta-data that should be
+ used in the scope of the configured context. The modification of the context typically involves setting properties or
+ registering custom JAX-RS components, such as providers and/or features. All modifications of a <code>Configurable</code>
+ context are reflected in the associated <a href="Configuration.html" title="interface in jakarta.ws.rs.core"><code>Configuration</code></a> state which is exposed via <a href="#getConfiguration()"><code>getConfiguration()</code></a>
+ method.
+ <p>
+ A configurable context can be either indirectly associated with a particular JAX-RS component (such as application or
+ resource method configurable context passed to a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> or <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a>
+ meta-providers) or can be directly represented by a concrete JAX-RS component implementing the <code>Configurable</code>
+ interface (such as <a href="../client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> or <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>WebTarget</code></a>). As such, the exact
+ scope of a configuration context is typically determined by a use case scenario in which the context is accessed.
+ </p>
+ <h2>Setting properties.</h2>
+ <p>
+ New properties can be set using the <a href="#property(java.lang.String,java.lang.Object)"><code>property(java.lang.String, java.lang.Object)</code></a> method. Similarly, updating a value of an existing property can
+ be achieved using the same method. Information about the configured set of properties is available via the underlying
+ <code>Configuration</code> object. An existing property can be removed by assigning a <code>null</code> value to the property.
+ </p>
+ <h2>Registering JAX-RS components.</h2>
+ <p>
+ Registered custom JAX-RS component classes and instances are important part of the contextual configuration
+ information as these are the main factors that determine the capabilities of a configured runtime. Implementations
+ SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS components in
+ a given configurable context.
+ </p>
+ <p>
+ In most cases, when registering a JAX-RS component, the simplest form of methods (<a href="#register(java.lang.Class)"><code>register(Class)</code></a> or
+ <a href="#register(java.lang.Object)"><code>register(Object)</code></a>) of the available registration API is sufficient.
+ </p>
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ config.register(HtmlDocumentReader.class);
+ config.register(new HtmlDocumentWriter(writerConfig));
+ </pre>
+ <p>
+ In some situations a JAX-RS component class or instance may implement multiple provider contracts recognized by a
+ JAX-RS implementation (e.g. filter, interceptor or entity provider). By default, the JAX-RS implementation MUST
+ register the new component class or instance as a provider for all the recognized provider contracts implemented by
+ the component class.
+ </p>
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ &#64;Priority(ENTITY_CODER)
+ public class GzipInterceptor
+         implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register GzipInterceptor as a ReaderInterceptor
+ // as well as a WriterInterceptor
+ config.register(GzipInterceptor.class);
+ </pre>
+ <p>
+ There are however situations when the default registration of a JAX-RS component to all the recognized provider
+ contracts is not desirable. In such cases users may use other versions of the <code>register(...)</code> method to
+ explicitly specify the collection of the provider contracts for which the JAX-RS component should be registered
+ and/or the priority of each registered provider contract.
+ </p>
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ &#64;Priority(USER)
+ public class ClientLoggingFilter
+         implements ClientRequestFilter, ClientResponseFilter { ... }
+
+ &#64;Priority(ENTITY_CODER)
+ public class GzipInterceptor
+         implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register ClientLoggingFilter as a ClientResponseFilter only
+ config.register(ClientLoggingFilter.class, ClientResponseFilter.class);
+
+ // override the priority of registered GzipInterceptor
+ // and both of it's provider contracts
+ config.register(GzipInterceptor.class, 6500);
+ </pre>
+ <p>
+ As a general rule, for each JAX-RS component class there can be at most one registration &mdash; class-based or
+ instance-based &mdash; configured at any given moment. Implementations MUST reject any attempts to configure a new
+ registration for a provider class that has been already registered in the given configurable context earlier.
+ Implementations SHOULD also raise a warning to inform the user about the rejected component registration.
+ </p>
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ config.register(GzipInterceptor.class, WriterInterceptor.class);
+ config.register(GzipInterceptor.class); // Rejected by runtime.
+ config.register(new GzipInterceptor()); // Rejected by runtime.
+ config.register(GzipInterceptor.class, 6500); // Rejected by runtime.
+
+ config.register(new ClientLoggingFilter());
+ config.register(ClientLoggingFilter.class); // rejected by runtime.
+ config.register(ClientLoggingFilter.class,
+         ClientResponseFilter.class); // Rejected by runtime.
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the new configuration property, if already set, the existing value of the property will be updated.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,int)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.util.Map)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,int)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.util.Map)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature"><a href="Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Get a live view of an internal configuration state of this configurable instance.
+
+ Any changes made using methods of this <code>Configurable</code> instance will be reflected in the returned
+ <code>Configuration</code> instance.
+ <p>
+ The returned <code>Configuration</code> instance and the collection data it provides are not thread-safe wrt. modification
+ made using methods on the parent configurable object.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configuration live view of the internal configuration state.</dd>
+</dl>
+</li>
+</ul>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set the new configuration property, if already set, the existing value of the property will be updated. Setting a
+ <code>null</code> value into a property effectively removes the property from the property bag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported
+ JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type,
+ for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS
+ implementation and a warning SHOULD be raised to inform the user about the rejected registration.
+
+ The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or
+ implementation-specific extension contracts including meta-provider contracts, such as <code>Feature</code> or
+ <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a>.
+ <p>
+ As opposed to component instances registered via <a href="#register(java.lang.Object)"><code>register(Object)</code></a> method, the lifecycle of components
+ registered using this class-based <code>register(...)</code> method is fully managed by the JAX-RS implementation or any
+ underlying IoC container supported by the implementation.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - JAX-RS component class to be configured in the scope of this configurable context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           int&nbsp;priority)</pre>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Class)"><code>register(Class)</code></a> except that any priority
+ specified on the registered JAX-RS component class via <code>jakarta.annotation.Priority</code> annotation is overridden
+ with the supplied <code>priority</code> value.
+ </p>
+ <p>
+ Note that in case the priority is not applicable to a particular provider contract implemented by the class of the
+ registered component, the supplied <code>priority</code> value will be ignored for that contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - JAX-RS component class to be configured in the scope of this configurable context.</dd>
+<dd><code>priority</code> - the overriding priority for the registered component and all the provider contracts the component
+ implements.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</pre>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Class)"><code>register(Class)</code></a> except the JAX-RS component
+ class is only registered as a provider of the listed extension provider or meta-provider <code>contracts</code>. All
+ explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered
+ component. Contracts that are not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component
+ class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - JAX-RS component class to be configured in the scope of this configurable context.</dd>
+<dd><code>contracts</code> - the specific extension provider or meta-provider contracts implemented by the component for which
+ the component should be registered. Implementations MUST ignore attempts to register a component class for an empty
+ or <code>null</code> collection of contracts via this method and SHOULD raise a warning about such event.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</pre>
+<div class="block">Register a class of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides same functionality as <a href="#register(java.lang.Class,java.lang.Class...)"><code>register(Class, Class[])</code></a> except that any priority
+ specified on the registered JAX-RS component class via <code>jakarta.annotation.Priority</code> annotation is overridden for
+ each extension provider contract type separately with an integer priority value specified as a value in the supplied
+ map of [contract type, priority] pairs.
+ </p>
+ <p>
+ Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the
+ supplied priority value is ignored for such contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - JAX-RS component class to be configured in the scope of this configurable context.</dd>
+<dd><code>contracts</code> - map of the specific extension provider and meta-provider contracts and their associated priorities
+ for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface
+ implemented or extended by the JAX-RS component. Contracts that are not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component class MUST be ignored and implementations SHOULD raise a warning to inform
+ users about the ignored contract(s).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</pre>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported
+ JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type,
+ for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS
+ implementation and a warning SHOULD be raised to inform the user about the rejected registration.
+
+ The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or
+ implementation-specific extension contracts including meta-provider contracts, such as <code>Feature</code> or
+ <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a>.
+ <p>
+ As opposed to components registered via <a href="#register(java.lang.Class)"><code>register(Class)</code></a> method, the lifecycle of providers registered using
+ this instance-based <code>register(...)</code> is not managed by JAX-RS runtime. The same registered component instance is
+ used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component
+ instances are injected with their declared dependencies (see <a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>) by the JAX-RS runtime prior to use.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - JAX-RS component instance to be configured in the scope of this configurable context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           int&nbsp;priority)</pre>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Object)"><code>register(Object)</code></a> except that any priority
+ specified on the registered JAX-RS component class via <code>jakarta.annotation.Priority</code> annotation is overridden
+ with the supplied <code>priority</code> value.
+ </p>
+ <p>
+ Note that in case the priority is not applicable to a particular provider contract implemented by the class of the
+ registered component, the supplied <code>priority</code> value will be ignored for that contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - JAX-RS component instance to be configured in the scope of this configurable context.</dd>
+<dd><code>priority</code> - the overriding priority for the registered component and all the provider contracts the component
+ implements.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</pre>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Object)"><code>register(Object)</code></a> except the JAX-RS component
+ class is only registered as a provider of the listed extension provider or meta-provider <code>contracts</code>. All
+ explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered
+ component. Contracts that are not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component
+ class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - JAX-RS component instance to be configured in the scope of this configurable context.</dd>
+<dd><code>contracts</code> - the specific extension provider or meta-provider contracts implemented by the component for which
+ the component should be registered. Implementations MUST ignore attempts to register a component class for an empty
+ or <code>null</code> collection of contracts via this method and SHOULD raise a warning about such event.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</pre>
+<div class="block">Register an instance of a custom JAX-RS component (such as an extension provider or a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated and used in the scope of this configurable context.
+ <p>
+ This registration method provides same functionality as <a href="#register(java.lang.Object,java.lang.Class...)"><code>register(Object, Class[])</code></a> except that any priority
+ specified on the registered JAX-RS component class via <code>jakarta.annotation.Priority</code> annotation is overridden for
+ each extension provider contract type separately with an integer priority value specified as a value in the supplied
+ map of [contract type, priority] pairs.
+ </p>
+ <p>
+ Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the
+ supplied priority value is ignored for such contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - JAX-RS component instance to be configured in the scope of this configurable context.</dd>
+<dd><code>contracts</code> - map of the specific extension provider and meta-provider contracts and their associated priorities
+ for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface
+ implemented or extended by the JAX-RS component. Contracts that are not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component class MUST be ignored and implementations SHOULD raise a warning to inform
+ users about the ignored contract(s).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configurable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Configuration.html b/apidocs/3.0.0/jakarta/ws/rs/core/Configuration.html
new file mode 100644
index 0000000..434720b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Configuration.html
@@ -0,0 +1,563 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Configuration (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Configuration (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configuration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Configuration" class="title">Interface Configuration</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Configuration</span></pre>
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context. Defines the components as
+ well as additional meta-data for the configured context.
+ <p>
+ A configuration state may be used to retrieve configuration information about of the associated JAX-RS context (e.g.
+ application, resource method, etc.) or component (e.g. <a href="../client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a>,
+ <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>WebTarget</code></a>, etc.). Configuration information consists of properties, registered JAX-RS
+ component classes and/or instances.
+ </p>
+ <p>
+ This interface can be injected using the <a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a> annotation.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClasses()">getClasses</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider, root resource or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContracts(java.lang.Class)">getContracts</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Get the extension contract registration information for a component of a given class.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstances()">getInstances</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>) instances to be
+ utilized by the configurable instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable bag of configuration properties.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the value for the property with a given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current configuration instance.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRuntimeType()">getRuntimeType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the runtime type of this configuration context.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled(jakarta.ws.rs.core.Feature)">isEnabled</a></span>&#8203;(<a href="Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&nbsp;feature)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance has been previously enabled in the runtime configuration
+ context.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled(java.lang.Class)">isEnabled</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been previously enabled in the runtime
+ configuration context.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRegistered(java.lang.Class)">isRegistered</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a JAX-RS component of the supplied <code>componentClass</code> class has been previously registered in the
+ runtime configuration context.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRegistered(java.lang.Object)">isRegistered</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular JAX-RS <code>component</code> instance (such as providers or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>features</code></a>) has been
+ previously registered in the runtime configuration context.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRuntimeType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRuntimeType</h4>
+<pre class="methodSignature"><a href="../RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a>&nbsp;getRuntimeType()</pre>
+<div class="block">Get the runtime type of this configuration context.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configuration context runtime type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getProperties()</pre>
+<div class="block">Get the immutable bag of configuration properties.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable view of configuration properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the value for the property with a given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value for the specified property name or <code>null</code> if the property with such name is not
+ configured.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current configuration instance.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of a property.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isEnabled(jakarta.ws.rs.core.Feature)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEnabled</h4>
+<pre class="methodSignature">boolean&nbsp;isEnabled&#8203;(<a href="Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&nbsp;feature)</pre>
+<div class="block">Check if a particular <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance has been previously enabled in the runtime configuration
+ context.
+ <p>
+ Method returns <code>true</code> only in case an instance equal to the <code>feature</code> instance is already present among
+ the features previously successfully enabled in the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>feature</code> - a feature instance to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the feature instance has been previously enabled in this configuration context, <code>false</code>
+ otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isEnabled(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEnabled</h4>
+<pre class="methodSignature">boolean&nbsp;isEnabled&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</pre>
+<div class="block">Check if a <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been previously enabled in the runtime
+ configuration context.
+ <p>
+ Method returns <code>true</code> in case any instance of the <code>featureClass</code> class is already present among the
+ features previously successfully enabled in the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>featureClass</code> - a feature class to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if a feature of a given class has been previously enabled in this configuration context,
+ <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRegistered(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRegistered</h4>
+<pre class="methodSignature">boolean&nbsp;isRegistered&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</pre>
+<div class="block">Check if a particular JAX-RS <code>component</code> instance (such as providers or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>features</code></a>) has been
+ previously registered in the runtime configuration context.
+ <p>
+ Method returns <code>true</code> only in case an instance equal to the <code>component</code> instance is already present among
+ the components previously registered in the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - a component instance to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the component instance has been previously registered in this configuration context,
+ <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isEnabled(jakarta.ws.rs.core.Feature)"><code>isEnabled(Feature)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isRegistered(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRegistered</h4>
+<pre class="methodSignature">boolean&nbsp;isRegistered&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Check if a JAX-RS component of the supplied <code>componentClass</code> class has been previously registered in the
+ runtime configuration context.
+ <p>
+ Method returns <code>true</code> in case a component of the supplied <code>componentClass</code> class is already present among
+ the previously registered component classes or instances in the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - a component class to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if a component of a given class has been previously registered in this configuration context,
+ <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isEnabled(java.lang.Class)"><code>isEnabled(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getContracts(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContracts</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;getContracts&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Get the extension contract registration information for a component of a given class.
+
+ For component classes that are not configured in this configuration context the method returns an empty <code>Map</code>.
+ Method does not return <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - a component class for which to get contracts.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of extension contracts and their priorities for which the component class is registered. May return an
+ empty map in case the component has not been registered for any extension contract supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClasses()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClasses</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;getClasses()</pre>
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider, root resource or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance. In contrast to
+ <a href="Application.html#getClasses()"><code>Application.getClasses()</code></a> this method returns a complete runtime view and therefore also includes
+ auto-discovered components.
+ <p>
+ For each component type, there can be only a single class-based or instance-based registration present in the
+ configuration context at any given time.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable set of registered JAX-RS component classes. The returned value may be empty but will never be
+ <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getInstances()"><code>getInstances()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getInstances()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInstances</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getInstances()</pre>
+<div class="block">Get the immutable set of registered JAX-RS component (such as provider or <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a>) instances to be
+ utilized by the configurable instance. Fields and properties of returned instances are injected with their declared
+ dependencies (see <a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>) by the runtime prior to use.
+ <p>
+ For each component type, there can be only a single class-based or instance-based registration present in the
+ configuration context at any given time.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable set of registered JAX-RS component instances. The returned value may be empty but will never be
+ <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getClasses()"><code>getClasses()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configuration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Context.html b/apidocs/3.0.0/jakarta/ws/rs/core/Context.html
new file mode 100644
index 0000000..2d8f823
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Context.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Context (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Context (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Context.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Annotation Type Context" class="title">Annotation Type Context</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Context</span></pre>
+<div class="block">This annotation is used to inject information into a class field, bean property or method parameter.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Application.html" title="class in jakarta.ws.rs.core"><code>Application</code></a>, 
+<a href="UriInfo.html" title="interface in jakarta.ws.rs.core"><code>UriInfo</code></a>, 
+<a href="Request.html" title="interface in jakarta.ws.rs.core"><code>Request</code></a>, 
+<a href="HttpHeaders.html" title="interface in jakarta.ws.rs.core"><code>HttpHeaders</code></a>, 
+<a href="SecurityContext.html" title="interface in jakarta.ws.rs.core"><code>SecurityContext</code></a>, 
+<a href="../ext/Providers.html" title="interface in jakarta.ws.rs.ext"><code>Providers</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Context.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Cookie.html b/apidocs/3.0.0/jakarta/ws/rs/core/Cookie.html
new file mode 100644
index 0000000..9197a10
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Cookie.html
@@ -0,0 +1,654 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Cookie (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Cookie (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":42,"i8":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Cookie.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Cookie" class="title">Class Cookie</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Cookie</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">Cookie</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents the value of a HTTP cookie, transferred in a request. RFC 2109 specifies the legal characters for name,
+ value, path and domain. The default version of 1 corresponds to RFC 2109.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_VERSION">DEFAULT_VERSION</a></span></code></th>
+<td class="colLast">
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+      int&nbsp;version)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compare for equality.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDomain()">getDomain</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the domain of the cookie.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the cookie.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the cookie.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value of the cookie.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the version of the cookie.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version.</div>
+</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_VERSION">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_VERSION</h4>
+<pre>public static final&nbsp;int DEFAULT_VERSION</pre>
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.Cookie.DEFAULT_VERSION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+              int&nbsp;version)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public static&nbsp;<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.</div>
+</div>
+<div class="block">Creates a new instance of <code>Cookie</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cookie string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created <code>Cookie</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block">Get the name of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie name.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the value of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie value.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getVersion()</pre>
+<div class="block">Get the version of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie version.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDomain()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDomain</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getDomain()</pre>
+<div class="block">Get the domain of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie domain.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie path.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.</div>
+</div>
+<div class="block">Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cookie.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compare for equality.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code>, if the object is a <code>Cookie</code> with the same value for all properties, <code>false</code>
+ otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Cookie.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/EntityTag.html b/apidocs/3.0.0/jakarta/ws/rs/core/EntityTag.html
new file mode 100644
index 0000000..ba58502
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/EntityTag.html
@@ -0,0 +1,490 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>EntityTag (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EntityTag (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":42,"i5":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EntityTag.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class EntityTag" class="title">Class EntityTag</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.EntityTag</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">EntityTag</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11">HTTP/1.1 section 3.11</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">EntityTag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,boolean)">EntityTag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         boolean&nbsp;weak)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering weakness and value.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hashCode based on value and weakness.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWeak()">isWeak</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version.</div>
+</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EntityTag</h4>
+<pre>public&nbsp;EntityTag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of the tag, quotes not included.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EntityTag</h4>
+<pre>public&nbsp;EntityTag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 boolean&nbsp;weak)</pre>
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of the tag, quotes not included.</dd>
+<dd><code>weak</code> - <code>true</code> if this represents a weak tag, <code>false</code> otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public static&nbsp;<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.</div>
+</div>
+<div class="block">Creates a new instance of <code>EntityTag</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the entity tag string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created entity tag.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWeak()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWeak</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWeak()</pre>
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this represents a weak tag, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the tag.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering weakness and value.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the two tags are the same, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hashCode based on value and weakness.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</div>
+<div class="block">Convert the entity tag to a string suitable for use as the value of the corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string version of the entity tag.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EntityTag.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Feature.html b/apidocs/3.0.0/jakarta/ws/rs/core/Feature.html
new file mode 100644
index 0000000..ca0995f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Feature.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Feature (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Feature (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Feature.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Feature" class="title">Interface Feature</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Feature</span></pre>
+<div class="block">A feature extension contract.
+
+ Typically encapsulates a concept or facility that involves configuration of multiple providers (e.g. filters or
+ interceptors) and/or properties.
+ <p>
+ A <code>Feature</code> is a special type of JAX-RS configuration meta-provider. Once a feature is registered, its
+ <a href="#configure(jakarta.ws.rs.core.FeatureContext)"><code>configure(FeatureContext)</code></a> method is invoked during JAX-RS runtime configuration and bootstrapping phase
+ allowing the feature to further configure the runtime context in which it has been registered. From within the
+ invoked <code>configure(...)</code> method a feature may provide additional runtime configuration for the facility or
+ conceptual domain it represents, such as registering additional contract providers, including nested features and/or
+ specifying domain-specific properties.
+ </p>
+ <p>
+ Features implementing this interface MAY be annotated with the <a href="../ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a>
+ annotation in order to be discovered by the JAX-RS runtime when scanning for resources and providers. Please note
+ that this will only work for server side features. Features for the JAX-RS client must be registered
+ programmatically.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(jakarta.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A call-back method called when the feature is to be enabled in a given runtime configuration scope.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="configure(jakarta.ws.rs.core.FeatureContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configure</h4>
+<pre class="methodSignature">boolean&nbsp;configure&#8203;(<a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</pre>
+<div class="block">A call-back method called when the feature is to be enabled in a given runtime configuration scope.
+
+ The responsibility of the feature is to properly update the supplied runtime configuration context and return
+ <code>true</code> if the feature was successfully enabled or <code>false</code> otherwise.
+ <p>
+ Note that under some circumstances the feature may decide not to enable itself, which is indicated by returning
+ <code>false</code>. In such case the configuration context does not add the feature to the collection of enabled features
+ and a subsequent call to <a href="Configuration.html#isEnabled(jakarta.ws.rs.core.Feature)"><code>Configuration.isEnabled(Feature)</code></a> or <a href="Configuration.html#isEnabled(java.lang.Class)"><code>Configuration.isEnabled(Class)</code></a> method
+ would return <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - configurable context in which the feature should be enabled.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the feature was successfully enabled, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Feature.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/FeatureContext.html b/apidocs/3.0.0/jakarta/ws/rs/core/FeatureContext.html
new file mode 100644
index 0000000..24bc34c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/FeatureContext.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>FeatureContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FeatureContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FeatureContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface FeatureContext" class="title">Interface FeatureContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">FeatureContext</span>
+extends <a href="Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;<a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&gt;</pre>
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.core.<a href="Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></h3>
+<code><a href="Configurable.html#getConfiguration()">getConfiguration</a>, <a href="Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="Configurable.html#register(java.lang.Class)">register</a>, <a href="Configurable.html#register(java.lang.Class,int)">register</a>, <a href="Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="Configurable.html#register(java.lang.Object)">register</a>, <a href="Configurable.html#register(java.lang.Object,int)">register</a>, <a href="Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FeatureContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Form.html b/apidocs/3.0.0/jakarta/ws/rs/core/Form.html
new file mode 100644
index 0000000..8ba07e6
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Form.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Form (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Form (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Form" class="title">Class Form</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Form</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Form</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Form</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">Form</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">Form</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterValue)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance with a single parameter entry.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asMap()">asMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns multivalued map representation of the form.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Form.html" title="class in jakarta.ws.rs.core">Form</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new value to the specified form parameter.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form()</pre>
+<div class="block">Create a new form data instance.
+ <p>
+ The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters
+ can be iterated in the same order as they were inserted into the <code>Form</code>.
+ </p></div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterValue)</pre>
+<div class="block">Create a new form data instance with a single parameter entry.
+ <p>
+ The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters
+ can be iterated in the same order as they were inserted into the <code>Form</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameterName</code> - form parameter name.</dd>
+<dd><code>parameterValue</code> - form parameter value.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</pre>
+<div class="block">Create a new form data instance and register a custom underlying parameter store.
+ <p>
+ This method is useful in situations when a custom parameter store is needed in order to change the default parameter
+ iteration order, improve performance or facilitate other custom requirements placed on the parameter store.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>store</code> - form data store used by the created form instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="param(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>param</h4>
+<pre class="methodSignature">public&nbsp;<a href="Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;param&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds a new value to the specified form parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the parameter.</dd>
+<dd><code>value</code> - new parameter value to be added.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <code>Form</code> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="asMap()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>asMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;asMap()</pre>
+<div class="block">Returns multivalued map representation of the form.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>form represented as multivalued map.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/GenericEntity.html b/apidocs/3.0.0/jakarta/ws/rs/core/GenericEntity.html
new file mode 100644
index 0000000..ecbb11f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/GenericEntity.html
@@ -0,0 +1,513 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>GenericEntity (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GenericEntity (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericEntity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class GenericEntity" class="title">Class GenericEntity&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.GenericEntity&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity instance type</dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GenericEntity&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents a message entity of a generic type <code>T</code>.
+ <p>
+ Normally type erasure removes generic type information such that a <a href="Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> instance that contains, e.g., an
+ entity of type <code>List&lt;String&gt;</code> appears to contain a raw <code>List&lt;?&gt;</code> at runtime. When the generic type is
+ required to select a suitable <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>, this class may be used to wrap the entity
+ and capture its generic type.
+ </p>
+ <p>
+ There are two ways to create an instance:
+ </p>
+ <ol>
+ <li>Create a (typically anonymous) subclass of this class which enables retrieval of the type information at runtime
+ despite type erasure. For example, the following code shows how to create a <a href="Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> containing an entity of
+ type <code>List&lt;String&gt;</code> whose generic type will be available at runtime for selection of a suitable
+ <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>:
+
+ <pre>
+ List&lt;String&gt; list = new ArrayList&lt;String&gt;();
+ GenericEntity&lt;List&lt;String&gt;&gt; entity = new GenericEntity&lt;List&lt;String&gt;&gt;(list) {
+ };
+ Response response = Response.ok(entity).build();
+ </pre>
+
+ <p>
+ where <code>list</code> is the instance of <code>List&lt;String&gt;</code> that will form the response body and entity is an instance
+ of an anonymous subclass of <code>GenericEntity</code>.
+ </p>
+ </li>
+ <li>Create an instance directly by supplying the generic type information with the entity. For example the following
+ code shows how to create a response containing the result of a method invoked via reflection:
+
+ <pre>
+ Method method = ...;
+ GenericEntity&lt;Object&gt; entity = new GenericEntity&lt;Object&gt;(
+    method.invoke(...), method.getGenericReturnType());
+ Response response = Response.ok(entity).build();
+ </pre>
+ <p>
+ The above obtains the generic type from the return type of the method, the raw type is the class of entity.
+ </p>
+ </li>
+ </ol></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="GenericType.html" title="class in jakarta.ws.rs.core"><code>GenericType</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(T)">GenericEntity</a></span>&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(T,java.lang.reflect.Type)">GenericEntity</a></span>&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="GenericEntity.html" title="type parameter in GenericEntity">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the enclosed entity.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawType()">getRawType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the raw type of the enclosed entity.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets underlying <code>Type</code> instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Object)">
+<!--   -->
+</a><a id="&lt;init&gt;(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GenericEntity</h4>
+<pre>protected&nbsp;GenericEntity&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity)</pre>
+<div class="block">Constructs a new generic entity. Derives represented class from type parameter. Note that this constructor is
+ protected, users should create a (usually anonymous) subclass as shown above.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the entity instance, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if entity is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.reflect.Type)">
+<!--   -->
+</a><a id="&lt;init&gt;(T,java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GenericEntity</h4>
+<pre>public&nbsp;GenericEntity&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information. The entity must be assignable to a
+ variable of the supplied generic type, e.g. if <code>entity</code> is an instance of <code>ArrayList&lt;String&gt;</code> then
+ <code>genericType</code> could be the same or a superclass of <code>ArrayList</code> with the same generic type like
+ <code>List&lt;String&gt;</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the entity instance, must not be <code>null</code>.</dd>
+<dd><code>genericType</code> - the generic type, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the entity is not assignable to a variable of the supplied generic type or if
+ entity or genericType is null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRawType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRawType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getRawType()</pre>
+<div class="block">Gets the raw type of the enclosed entity. Note that this is the raw type of the instance, not the raw type of the
+ type parameter. I.e. in the example in the introduction, the raw type is <code>ArrayList</code> not <code>List</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the raw type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getType()</pre>
+<div class="block">Gets underlying <code>Type</code> instance. Note that this is derived from the type parameter, not the enclosed instance.
+ I.e. in the example in the introduction, the type is <code>List&lt;String&gt;</code> not <code>ArrayList&lt;String&gt;</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public final&nbsp;<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;getEntity()</pre>
+<div class="block">Get the enclosed entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enclosed entity.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericEntity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/GenericType.html b/apidocs/3.0.0/jakarta/ws/rs/core/GenericType.html
new file mode 100644
index 0000000..409e80d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/GenericType.html
@@ -0,0 +1,505 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>GenericType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GenericType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class GenericType" class="title">Class GenericType&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.GenericType&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the generic type parameter.</dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GenericType&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents a generic message entity type <code>T</code>.
+
+ Supports in-line instantiation of objects that represent generic types with actual type parameters. An object that
+ represents any parameterized type may be obtained by sub-classing <code>GenericType</code>. Alternatively, an object
+ representing a concrete parameterized type can be created using a <a href="#%3Cinit%3E(java.lang.reflect.Type)"><code>GenericType(java.lang.reflect.Type)</code></a> and
+ manually specifying the <a href="#getType()"><code>actual (parameterized) type</code></a>.
+ <p>
+ For example:
+ </p>
+
+ <pre>
+ GenericType&lt;List&lt;String&gt;&gt; stringListType = new GenericType&lt;List&lt;String&gt;&gt;() {
+ };
+ </pre>
+ <p>
+ Or:
+ </p>
+
+ <pre>
+  public class MyGenericType extends GenericType&lt;List&lt;String&gt;&gt; { ... }
+
+  ...
+
+  MyGenericType stringListType = new MyGenericType();
+ </pre>
+ <p>
+ Note that due to the Java type erasure limitations the parameterized type information must be specified on a
+ subclass, not just during the instance creation. For example, the following case would throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a>:
+ </p>
+
+ <pre>
+  public class MyGenericType&lt;T&gt; extends GenericType&lt;T&gt; { ... }
+
+  ...
+
+  // The type is only specified on instance, not in a sub-class
+  MyGenericType&lt;List&lt;String&gt;&gt; stringListType =
+          new MyGenericType&lt;List&lt;String&gt;&gt;();
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Paul Sandoz, Martin Matula</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic type, deriving the generic type and class from type parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.reflect.Type)">GenericType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic type, supplying the generic type information and deriving the class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forInstance(java.lang.Object)">forInstance</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="GenericType.html" title="class in jakarta.ws.rs.core"><code>generic type</code></a> from a Java <code>instance</code>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawType()">getRawType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the object representing the class or interface that declared the type represented by this generic type
+ instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GenericType</h4>
+<pre>protected&nbsp;GenericType()</pre>
+<div class="block">Constructs a new generic type, deriving the generic type and class from type parameter. Note that this constructor is
+ protected, users should create a (usually anonymous) subclass as shown above.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the generic type parameter value is not provided by any of the subclasses.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GenericType</h4>
+<pre>public&nbsp;GenericType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Constructs a new generic type, supplying the generic type information and deriving the class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>genericType</code> - the generic type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if genericType is <code>null</code> or not an instance of <code>Class</code> or
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>ParameterizedType</code></a> whose raw type is an instance of <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="forInstance(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>forInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&nbsp;forInstance&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</pre>
+<div class="block">Create a <a href="GenericType.html" title="class in jakarta.ws.rs.core"><code>generic type</code></a> from a Java <code>instance</code>.
+ <p>
+ If the supplied instance is a <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a>, the generic type will be computed using the
+ <a href="GenericEntity.html#getType()"><code>GenericEntity.getType()</code></a>. Otherwise <code>instance.getClass()</code> will be used.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - Java instance for which the <code>GenericType</code> description should be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>GenericType</code> describing the Java <code>instance</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getType()</pre>
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the actual type represented by this generic type instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRawType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRawType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getRawType()</pre>
+<div class="block">Returns the object representing the class or interface that declared the type represented by this generic type
+ instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class or interface that declared the type represented by this generic type instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/HttpHeaders.html b/apidocs/3.0.0/jakarta/ws/rs/core/HttpHeaders.html
new file mode 100644
index 0000000..104cc7a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/HttpHeaders.html
@@ -0,0 +1,1209 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>HttpHeaders (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HttpHeaders (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpHeaders.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface HttpHeaders" class="title">Interface HttpHeaders</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">HttpHeaders</span></pre>
+<div class="block">An injectable interface that provides access to HTTP header information. All methods throw
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request (e.g. from a provider constructor).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT">ACCEPT</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_CHARSET">ACCEPT_CHARSET</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_ENCODING">ACCEPT_ENCODING</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW">ALLOW</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHORIZATION">AUTHORIZATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CACHE_CONTROL">CACHE_CONTROL</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_ENCODING">CONTENT_ENCODING</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_ID">CONTENT_ID</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LENGTH">CONTENT_LENGTH</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LOCATION">CONTENT_LOCATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_TYPE">CONTENT_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COOKIE">COOKIE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DATE">DATE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ETAG">ETAG</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXPIRES">EXPIRES</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HOST">HOST</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_MATCH">IF_MATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_NONE_MATCH">IF_NONE_MATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LAST_MODIFIED">LAST_MODIFIED</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LINK">LINK</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOCATION">LOCATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RETRY_AFTER">RETRY_AFTER</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SET_COOKIE">SET_COOKIE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#USER_AGENT">USER_AGENT</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#VARY">VARY</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span></code></th>
+<td class="colLast">
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">
+ Get a HTTP header as a single string value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the request entity.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the request entity.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestHeader(java.lang.String)">getRequestHeader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the values of a HTTP request header.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestHeaders()">getRequestHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of HTTP request headers.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="ACCEPT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ACCEPT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_CHARSET">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_CHARSET</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_CHARSET</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ACCEPT_CHARSET">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_ENCODING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_ENCODING</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_ENCODING</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ACCEPT_ENCODING">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_LANGUAGE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_LANGUAGE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ACCEPT_LANGUAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ALLOW">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ALLOW</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ALLOW</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ALLOW">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTHORIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORIZATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> AUTHORIZATION</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.AUTHORIZATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CACHE_CONTROL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CACHE_CONTROL</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CACHE_CONTROL</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CACHE_CONTROL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_DISPOSITION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_DISPOSITION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_DISPOSITION</pre>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_ENCODING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_ENCODING</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_ENCODING</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_ENCODING">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_ID">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_ID</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_ID</pre>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_ID">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LANGUAGE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LANGUAGE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_LANGUAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LENGTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LENGTH</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LOCATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LOCATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LOCATION</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_LOCATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_TYPE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_TYPE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DATE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.DATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ETAG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ETAG</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ETAG</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.ETAG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="EXPIRES">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXPIRES</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> EXPIRES</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.EXPIRES">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="HOST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HOST</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> HOST</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.HOST">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_MATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_MATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_MATCH</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.IF_MATCH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_MODIFIED_SINCE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_MODIFIED_SINCE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_MODIFIED_SINCE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.IF_MODIFIED_SINCE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_NONE_MATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_NONE_MATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_NONE_MATCH</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.IF_NONE_MATCH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_UNMODIFIED_SINCE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_UNMODIFIED_SINCE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_UNMODIFIED_SINCE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.IF_UNMODIFIED_SINCE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LAST_MODIFIED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LAST_MODIFIED</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LAST_MODIFIED</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.LAST_MODIFIED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LOCATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOCATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LOCATION</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.LOCATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LINK">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LINK</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LINK</pre>
+<div class="block">See <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.LINK">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RETRY_AFTER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RETRY_AFTER</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> RETRY_AFTER</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.RETRY_AFTER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="USER_AGENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USER_AGENT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> USER_AGENT</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.USER_AGENT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="VARY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VARY</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> VARY</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.VARY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WWW_AUTHENTICATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WWW_AUTHENTICATE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> WWW_AUTHENTICATE</pre>
+<div class="block">See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.WWW_AUTHENTICATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="COOKIE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COOKIE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> COOKIE</pre>
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.COOKIE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SET_COOKIE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SET_COOKIE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> SET_COOKIE</pre>
+<div class="block">See <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.SET_COOKIE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LAST_EVENT_ID_HEADER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LAST_EVENT_ID_HEADER</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LAST_EVENT_ID_HEADER</pre>
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.HttpHeaders.LAST_EVENT_ID_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRequestHeader(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestHeader</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getRequestHeader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the values of a HTTP request header. The returned List is read-only. This is a shortcut for
+ <code>getRequestHeaders().get(name)</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the header name, case insensitive.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of header values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block"><p>
+ Get a HTTP header as a single string value.
+ </p>
+ Each single header value is converted to String using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one
+ is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the header value
+ class or using its <code>toString</code> method if a header delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the HTTP header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP header value. If the HTTP header is not present then <code>null</code> is returned. If the HTTP header is
+ present but has no value then the empty string is returned. If the HTTP header is present more than once then the
+ values of joined together and separated by a ',' character.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getRequestHeader(java.lang.String)"><code>getRequestHeader(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestHeaders</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getRequestHeaders()</pre>
+<div class="block">Get the values of HTTP request headers. The returned Map is case-insensitive wrt. keys and is read-only. The method
+ never returns <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of header names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block"><p>
+ Get a list of media types that are acceptable for the response.
+ </p>
+ If no acceptable media types are specified, a read-only list containing a single
+ <a href="MediaType.html#WILDCARD_TYPE"><code>wildcard media type</code></a> instance is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according to their q-value, with highest preference
+ first.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block"><p>
+ Get a list of languages that are acceptable for the response.
+ </p>
+ If no acceptable languages are specified, a read-only list containing a single wildcard <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Locale</code></a>
+ instance (with language field set to "<code>*</code>") is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according to their q-value, with highest preference first.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the request entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if there is no request entity.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the request entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to Cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other cases returns -1.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpHeaders.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Link.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/core/Link.Builder.html
new file mode 100644
index 0000000..9878816
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Link.Builder.html
@@ -0,0 +1,608 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Link.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Link.Builder" class="title">Interface Link.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Link.Builder</span></pre>
+<div class="block">Builder class for hypermedia links.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#baseUri(java.lang.String)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#baseUri(java.net.URI)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters and relativize the result with respect to the
+ supplied URI.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(jakarta.ws.rs.core.Link)">link</a></span>&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link represented as a string.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set an arbitrary parameter on this link.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rel(java.lang.String)">rel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a link relation.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#title(java.lang.String)">title</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uriBuilder(jakarta.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="link(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;link&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Initialize builder using another link. Sets underlying URI and copies all parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link from which to initialize.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</pre>
+<div class="block">Initialize builder using another link represented as a string. Uses simple parser to convert string representation
+ into a link.
+
+ <pre>
+ link ::= '&lt;' uri 'gt;' (';' link-param)*
+ link-param ::= name '=' quoted-string
+ </pre>
+
+ See <a href="http://tools.ietf.org/html/rfc5988">RFC 5988</a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link in string representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set underlying URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="baseUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>baseUri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;baseUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set the base URI for resolution of relative URIs. If the underlying URI is already absolute, the base URI is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - base URI for relative links.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html#fromPath(java.lang.String)"><code>Link.fromPath(java.lang.String)</code></a>, 
+<a href="Link.html#fromResource(java.lang.Class)"><code>Link.fromResource(java.lang.Class)</code></a>, 
+<a href="Link.html#fromMethod(java.lang.Class,java.lang.String)"><code>Link.fromMethod(java.lang.Class, java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="baseUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>baseUri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;baseUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Set the base URI as a string for resolution of relative URIs. If the underlying URI is already absolute, the base URI
+ is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - base URI for relative links.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html#fromPath(java.lang.String)"><code>Link.fromPath(java.lang.String)</code></a>, 
+<a href="Link.html#fromResource(java.lang.Class)"><code>Link.fromResource(java.lang.Class)</code></a>, 
+<a href="Link.html#fromMethod(java.lang.Class,java.lang.String)"><code>Link.fromMethod(java.lang.Class, java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="uriBuilder(jakarta.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uriBuilder</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;uriBuilder&#8203;(<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - underlying URI builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="rel(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rel</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;rel&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Convenience method to set a link relation. More than one <code>rel</code> value can be specified by using one or more
+ whitespace characters as delimiters according to RFC 5988. The effect of calling this method is cumulative; relations
+ are appended using a single space character as separator.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rel</code> - relation name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="title(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>title</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;title&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</pre>
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>title</code> - title parameter of this link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the title is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;type&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - type parameter of this link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the type is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="param(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>param</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;param&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Set an arbitrary parameter on this link. Note that link parameters are those defined in RFC 5988 and should not be
+ confused with URI parameters which can be specified when calling <a href="#build(java.lang.Object...)"><code>build(Object...)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the parameter.</dd>
+<dd><code>value</code> - the value set for the parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if either the name or value are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Finish building this link using the supplied values as URI parameters.
+
+ The state of the builder is unaffected; this method may be called multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - parameters used to build underlying URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly built link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a value is
+ <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the underlying URI builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildRelativized(java.net.URI,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>buildRelativized</h4>
+<pre class="methodSignature"><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;buildRelativized&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Finish building this link using the supplied values as URI parameters and relativize the result with respect to the
+ supplied URI.
+
+ If the underlying link is already relative or if it is absolute but does not share a prefix with the supplied URI,
+ this method is equivalent to calling <a href="#build(java.lang.Object...)"><code>build(java.lang.Object[])</code></a>. Note that a base URI can be set
+ on a relative link using <a href="#baseUri(java.net.URI)"><code>baseUri(java.net.URI)</code></a>. The state of the builder is unaffected; this
+ method may be called multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI used for relativization.</dd>
+<dd><code>values</code> - parameters used to build underlying URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly built link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a value is
+ <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the underlying URI builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#baseUri(java.lang.String)"><code>baseUri(java.lang.String)</code></a>, 
+<a href="#baseUri(java.net.URI)"><code>baseUri(java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbAdapter.html b/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbAdapter.html
new file mode 100644
index 0000000..f636a28
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbAdapter.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Link.JaxbAdapter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.JaxbAdapter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbAdapter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Link.JaxbAdapter" class="title">Class Link.JaxbAdapter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Link.JaxbAdapter</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">Link.JaxbAdapter</span>
+extends jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</pre>
+<div class="block">An implementation of JAXB <code>XmlAdapter</code> that maps the JAX-RS
+ <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> type to a value that can be marshalled and unmarshalled by JAXB. The following example
+ shows how to use this adapter on a JAXB bean class:
+
+ <pre>
+ &#64;XmlRootElement
+ public class MyModel {
+
+   private Link link;
+
+   &#64;XmlElement(name="link")
+   &#64;XmlJavaTypeAdapter(JaxbAdapter.class)
+   public Link getLink() {
+     return link;
+   }
+   ...
+ }
+ </pre>
+
+ Note that usage of this class requires the Jakarta XML Binding API and an implementation. The Jakarta RESTful Web
+ Services implementation is not required to provide these dependencies.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JaxbAdapter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#marshal(jakarta.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> into a <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unmarshal(jakarta.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JaxbAdapter</h4>
+<pre>public&nbsp;JaxbAdapter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="unmarshal(jakarta.ws.rs.core.Link.JaxbLink)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unmarshal</h4>
+<pre class="methodSignature">public&nbsp;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;unmarshal&#8203;(<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</pre>
+<div class="block">Convert a <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>unmarshal</code>&nbsp;in class&nbsp;<code>jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - instance of type <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapped instance of type <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="marshal(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>marshal</h4>
+<pre class="methodSignature">public&nbsp;<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>&nbsp;marshal&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;v)</pre>
+<div class="block">Convert a <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> into a <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>marshal</code>&nbsp;in class&nbsp;<code>jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - instance of type <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapped instance of type <a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbAdapter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbLink.html b/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbLink.html
new file mode 100644
index 0000000..7df90d0
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Link.JaxbLink.html
@@ -0,0 +1,433 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Link.JaxbLink (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.JaxbLink (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbLink.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Link.JaxbLink" class="title">Class Link.JaxbLink</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Link.JaxbLink</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">Link.JaxbLink</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Value type for <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.
+
+ Note that usage of this class requires the Jakarta XML Binding API and an implementation. The Jakarta RESTful Web
+ Services implementation is not required to provide these dependencies.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbAdapter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JaxbLink</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Default constructor needed during unmarshalling.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URI)">JaxbLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Construct an instance from a URI and no parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URI,java.util.Map)">JaxbLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;params)</code></th>
+<td class="colLast">
+<div class="block">Construct an instance from a URI and some parameters.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParams()">getParams</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the parameter map for this link.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the underlying URI for this link.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink()</pre>
+<div class="block">Default constructor needed during unmarshalling.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Construct an instance from a URI and no parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URI,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;params)</pre>
+<div class="block">Construct an instance from a URI and some parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI.</dd>
+<dd><code>params</code> - parameters of this link.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the underlying URI for this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParams()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParams</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getParams()</pre>
+<div class="block">Get the parameter map for this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>parameter map.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbLink.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Link.html b/apidocs/3.0.0/jakarta/ws/rs/core/Link.html
new file mode 100644
index 0000000..d297e0b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Link.html
@@ -0,0 +1,847 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Link (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Link" class="title">Class Link</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Link</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Link</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block"><p>
+ Class representing hypermedia links. A hypermedia link may include additional parameters beyond its underlying URI.
+ Parameters such as <code>rel</code> or <code>type</code> provide additional meta-data. Links in responses can be
+ <em>followed</em> by creating an <a href="../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><code>Invocation.Builder</code></a> or a
+ <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>WebTarget</code></a>.
+ </p>
+
+ <p>
+ The methods <a href="#toString()"><code>toString()</code></a> and <a href="#valueOf(java.lang.String)"><code>valueOf(java.lang.String)</code></a> can be used to serialize and de-serialize a link into a link
+ header (RFC 5988).
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../client/Client.html#invocation(jakarta.ws.rs.core.Link)"><code>Client.invocation(jakarta.ws.rs.core.Link)</code></a>, 
+<a href="../client/Client.html#target(jakarta.ws.rs.core.Link)"><code>Client.target(jakarta.ws.rs.core.Link)</code></a>, 
+<a href="Response.html#getLink(java.lang.String)"><code>Response.getLink(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></span></code></th>
+<td class="colLast">
+<div class="block">An implementation of JAXB <code>XmlAdapter</code> that maps the JAX-RS
+ <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> type to a value that can be marshalled and unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></span></code></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REL">REL</a></span></code></th>
+<td class="colLast">
+<div class="block">Rel link param from RFC 5988.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TITLE">TITLE</a></span></code></th>
+<td class="colLast">
+<div class="block">Title link param from RFC 5988.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TYPE">TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Type link param from RFC 5988.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Link</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a path.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUriBuilder(jakarta.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParams()">getParams</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable map that includes all the link parameters defined on this link.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRel()">getRel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>rel</code> param, or <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRels()">getRels</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list of strings or the empty list if <code>rel</code> is
+ not defined.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTitle()">getTitle</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>title</code> param, or <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>type</code> param, or <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the underlying URI associated with this link.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> initialized with this link's underlying URI.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a string representation as a link header (RFC 5988).</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static <a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="TITLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TITLE</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TITLE</pre>
+<div class="block">Title link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.Link.TITLE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="REL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REL</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> REL</pre>
+<div class="block">Rel link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.Link.REL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TYPE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TYPE</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TYPE</pre>
+<div class="block">Type link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.Link.TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Link</h4>
+<pre>public&nbsp;Link()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Returns the underlying URI associated with this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;getUriBuilder()</pre>
+<div class="block">Convenience method that returns a <a href="UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> initialized with this link's underlying URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>UriBuilder initialized using underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRel</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getRel()</pre>
+<div class="block">Returns the value associated with the link <code>rel</code> param, or <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>relation types as string or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRels()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRels</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getRels()</pre>
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list of strings or the empty list if <code>rel</code> is
+ not defined.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>relation types as list of strings or empty list.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTitle()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTitle</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getTitle()</pre>
+<div class="block">Returns the value associated with the link <code>title</code> param, or <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of title parameter or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getType()</pre>
+<div class="block">Returns the value associated with the link <code>type</code> param, or <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of type parameter or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParams()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParams</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getParams()</pre>
+<div class="block">Returns an immutable map that includes all the link parameters defined on this link. If defined, this map will
+ include entries for <code>rel</code>, <code>title</code> and <code>type</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>immutable map of link parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Returns a string representation as a link header (RFC 5988). All link params are serialized as link-param="value"
+ where value is a quoted-string. For example,
+
+ &lt;http://foo.bar/employee/john&gt;; title="employee"; rel="manager friend"</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>string link header representation for this link.</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Simple parser to convert link header string representations into a link.
+
+ <pre>
+ link ::= '&lt;' uri 'gt;' (';' link-param)*
+ link-param ::= name '=' quoted-string
+ </pre>
+
+ See <a href="http://tools.ietf.org/html/rfc5988">RFC 5988</a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - String representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly parsed link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if a syntax error is found.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.Builder.html#link(java.lang.String)"><code>Link.Builder.link(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUriBuilder(jakarta.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUriBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromUriBuilder&#8203;(<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - instance of URI builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromLink(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromLink</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromLink&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Create a new builder instance initialized from another link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link used for initialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromPath</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Convenience method to build a link from a path. Equivalent to <code>fromUriBuilder(UriBuilder.fromPath(path))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - a URI path that will be used to initialize the Link, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new Link.Builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResource</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</pre>
+<div class="block">Convenience method to build a link from a resource. Equivalent to
+ <code>Link.fromUriBuilder({@link UriBuilder#fromResource UriBuilder.fromResource(resource)})</code>. Note that the link
+ URI passed to the <code>Link.Builder</code> instance returned by this method is relative. Should the link be built as
+ absolute, a <a href="Link.Builder.html#baseUri(java.net.URI)"><code>base URI</code></a> has to be specified in the builder prior to building the new
+ link instance. For example, on a server side a <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a> may be typically used to define the base
+ URI of a link created using this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a root resource whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>link builder</code></a> instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is not annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> or resource is
+ <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromMethod(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromMethod</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;fromMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Convenience method to build a link from a resource. Equivalent to
+ <code>Link.fromUriBuilder({@link UriBuilder#fromMethod(Class, String) UriBuilder.fromMethod(resource, method)})</code>.
+ Note that the link URI passed to the <code>Link.Builder</code> instance returned by this method is relative. Should the
+ link be built as absolute, a <a href="Link.Builder.html#baseUri(java.net.URI)"><code>base URI</code></a> has to be specified in the builder prior to
+ building the new link instance. For example, on a server side a <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a> may be typically used to
+ define the base URI of a link created using this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated Link.Builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>, or there is more than or less than one
+ variant of the method annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/MediaType.html b/apidocs/3.0.0/jakarta/ws/rs/core/MediaType.html
new file mode 100644
index 0000000..9fa4416
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/MediaType.html
@@ -0,0 +1,1261 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MediaType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MediaType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MediaType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class MediaType" class="title">Class MediaType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.MediaType</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">MediaType</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for a media type. Instances are immutable.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">HTTP/1.1 section 3.7</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON">APPLICATION_JSON</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON">"application/json"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XML">APPLICATION_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XML">"application/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CHARSET_PARAMETER">CHARSET_PARAMETER</a></span></code></th>
+<td class="colLast">
+<div class="block">The media type <code>charset</code> parameter name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></span></code></th>
+<td class="colLast">
+<div class="block">The value of a type or subtype wildcard "*".</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Server sent events media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_HTML">TEXT_HTML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_HTML">"text/html"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_PLAIN">TEXT_PLAIN</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_XML">TEXT_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_XML">"text/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WILDCARD">WILDCARD</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WILDCARD_TYPE">WILDCARD_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="#WILDCARD">"*/*"</a> media type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and <a href="#CHARSET_PARAMETER">"charset"</a>
+ parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;parameters)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and parameters.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">
+ Compares <code>obj</code> to this media type to see if they are the same by comparing type, subtype and parameters.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for a read-only parameter map.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSubtype()">getSubtype</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for subtype.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for primary type.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ Generate a hash code from the type, subtype and parameters.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCompatible(jakarta.ws.rs.core.MediaType)">isCompatible</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;other)</code></th>
+<td class="colLast">
+<div class="block">Check if this media type is compatible with another media type.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWildcardSubtype()">isWildcardSubtype</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the subtype is a wildcard.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWildcardType()">isWildcardType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the primary type is a wildcard.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the media type to a string suitable for use as the value of a corresponding HTTP header.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withCharset(java.lang.String)">withCharset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters copied from the original instance
+ and the supplied <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="CHARSET_PARAMETER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CHARSET_PARAMETER</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CHARSET_PARAMETER</pre>
+<div class="block">The media type <code>charset</code> parameter name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.CHARSET_PARAMETER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MEDIA_TYPE_WILDCARD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MEDIA_TYPE_WILDCARD</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> MEDIA_TYPE_WILDCARD</pre>
+<div class="block">The value of a type or subtype wildcard "*".</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.MEDIA_TYPE_WILDCARD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WILDCARD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WILDCARD</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> WILDCARD</pre>
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.WILDCARD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WILDCARD_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WILDCARD_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> WILDCARD_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="#WILDCARD">"*/*"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XML">"application/xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_ATOM_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_ATOM_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_ATOM_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_ATOM_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_ATOM_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_ATOM_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_ATOM_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_XHTML_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XHTML_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_XHTML_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_XHTML_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_XHTML_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XHTML_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_XHTML_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_SVG_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_SVG_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_SVG_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_SVG_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_SVG_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_SVG_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_SVG_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_JSON">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_JSON</pre>
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_JSON">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_JSON_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_JSON_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON">"application/json"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_FORM_URLENCODED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_FORM_URLENCODED</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_FORM_URLENCODED</pre>
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_FORM_URLENCODED_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_FORM_URLENCODED_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_FORM_URLENCODED_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</li>
+</ul>
+<a id="MULTIPART_FORM_DATA">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTIPART_FORM_DATA</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> MULTIPART_FORM_DATA</pre>
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.MULTIPART_FORM_DATA">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MULTIPART_FORM_DATA_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTIPART_FORM_DATA_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> MULTIPART_FORM_DATA_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_OCTET_STREAM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_OCTET_STREAM</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_OCTET_STREAM</pre>
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_OCTET_STREAM_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_OCTET_STREAM_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_OCTET_STREAM_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_PLAIN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_PLAIN</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_PLAIN</pre>
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.TEXT_PLAIN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_PLAIN_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_PLAIN_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> TEXT_PLAIN_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_XML</pre>
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.TEXT_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> TEXT_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_XML">"text/xml"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_HTML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_HTML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_HTML</pre>
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.TEXT_HTML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_HTML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_HTML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> TEXT_HTML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_HTML">"text/html"</a> media type.</div>
+</li>
+</ul>
+<a id="SERVER_SENT_EVENTS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_SENT_EVENTS</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> SERVER_SENT_EVENTS</pre>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type. (""text/event-stream"").</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.SERVER_SENT_EVENTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SERVER_SENT_EVENTS_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_SENT_EVENTS_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> SERVER_SENT_EVENTS_TYPE</pre>
+<div class="block">Server sent events media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_JSON_PATCH_JSON">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON_PATCH_JSON</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_JSON_PATCH_JSON</pre>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.MediaType.APPLICATION_JSON_PATCH_JSON">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_JSON_PATCH_JSON_TYPE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>APPLICATION_JSON_PATCH_JSON_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> APPLICATION_JSON_PATCH_JSON_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a>.</dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a>.</dd>
+<dd><code>parameters</code> - a map of media type parameters, <code>null</code> is the same as an empty map.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and <a href="#CHARSET_PARAMETER">"charset"</a>
+ parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>charset</code> - the <a href="#CHARSET_PARAMETER">"charset"</a> parameter value. If <code>null</code> or empty the
+ <a href="#CHARSET_PARAMETER">"charset"</a> parameter will not be set.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType()</pre>
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards. Consider using the constant
+ <a href="#WILDCARD_TYPE"><code>WILDCARD_TYPE</code></a> instead.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created MediaType.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getType()</pre>
+<div class="block">Getter for primary type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of primary type.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWildcardType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWildcardType</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWildcardType()</pre>
+<div class="block">Checks if the primary type is a wildcard.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the primary type is a wildcard.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSubtype()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSubtype</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getSubtype()</pre>
+<div class="block">Getter for subtype.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of subtype.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWildcardSubtype()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWildcardSubtype</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWildcardSubtype()</pre>
+<div class="block">Checks if the subtype is a wildcard.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the subtype is a wildcard.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Getter for a read-only parameter map. Keys are case-insensitive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable map of parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="withCharset(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withCharset</h4>
+<pre class="methodSignature">public&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;withCharset&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</pre>
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters copied from the original instance
+ and the supplied <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>charset</code> - the <a href="#CHARSET_PARAMETER">"charset"</a> parameter value. If <code>null</code> or empty the
+ <a href="#CHARSET_PARAMETER">"charset"</a> parameter will not be set or updated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>copy of the current <code>MediaType</code> instance with the <a href="#CHARSET_PARAMETER">"charset"</a> parameter set to the
+ supplied value.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="isCompatible(jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompatible</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isCompatible&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;other)</pre>
+<div class="block">Check if this media type is compatible with another media type.
+ Two media types are considered to be compatible if and only if their types are equal,
+ or one of them has a wildcard type, and their subtypes are equal or one of them has a wildcard subtype.
+
+ Media type parameters are ignored. The function is commutative.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>other</code> - the media type to compare with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the types are compatible, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block"><p>
+ Compares <code>obj</code> to this media type to see if they are the same by comparing type, subtype and parameters. Note
+ that the case-sensitivity of parameter values is dependent on the semantics of the parameter name, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">HTTP/1.1</a>. This method assumes that values
+ are case-sensitive.
+ </p>
+ Note that the <code>equals(...)</code> implementation does not perform a class equality check
+ (<code>this.getClass() == obj.getClass()</code>). Therefore any class that extends from <code>MediaType</code> class and needs
+ to override one of the <code>equals(...)</code> and <a href="#hashCode()"><code>hashCode()</code></a> methods must always override both methods to
+ ensure the contract between <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink"><code>Object.equals(java.lang.Object)</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink"><code>Object.hashCode()</code></a> does not break.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two media types are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block"><p>
+ Generate a hash code from the type, subtype and parameters.
+ </p>
+ Note that the <a href="#equals(java.lang.Object)"><code>equals(java.lang.Object)</code></a> implementation does not perform a class equality check
+ (<code>this.getClass() == obj.getClass()</code>). Therefore any class that extends from <code>MediaType</code> class and needs
+ to override one of the <a href="#equals(java.lang.Object)"><code>equals(Object)</code></a> and <code>hashCode()</code> methods must always override both methods to
+ ensure the contract between <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink"><code>Object.equals(java.lang.Object)</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink"><code>Object.hashCode()</code></a> does not break.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a generated hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the media type to a string suitable for use as the value of a corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string version of the media type.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MediaType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedHashMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedHashMap.html
new file mode 100644
index 0000000..9ae1349
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedHashMap.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MultivaluedHashMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedHashMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class MultivaluedHashMap" class="title">Class MultivaluedHashMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.MultivaluedHashMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MultivaluedHashMap&lt;K,&#8203;V&gt;</span>
+extends <a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.
+
+ <p>
+ This implementation provides all of the optional map operations. This class makes no guarantees as to the order of
+ the map; in particular, it does not guarantee that the order will remain constant over time. The implementation
+ permits <code>null</code> key. By default the implementation does also permit <code>null</code> values, but ignores them. This
+ behavior can be customized by overriding the protected <a href="AbstractMultivaluedMap.html#addNull(java.util.List)"><code>addNull(...)</code></a> and
+ <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)"><code>addFirstNull(...)</code></a> methods.
+ </p>
+ <p>
+ This implementation provides constant-time performance for the basic operations (<code>get</code> and <code>put</code>),
+ assuming the hash function disperses the elements properly among the buckets. Iteration over collection views
+ requires time proportional to the "capacity" of the map instance (the number of buckets) plus its size (the number of
+ key-value mappings). Thus, it's very important not to set the initial capacity too high (or the load factor too low)
+ if iteration performance is important.
+ </p>
+ <p>
+ An instance of <code>MultivaluedHashMap</code> has two parameters that affect its performance: <i>initial capacity</i>
+ and <i>load factor</i>. The <i>capacity</i> is the number of buckets in the hash table, and the initial capacity is
+ simply the capacity at the time the hash table is created. The <i>load factor</i> is a measure of how full the hash
+ table is allowed to get before its capacity is automatically increased. When the number of entries in the hash table
+ exceeds the product of the load factor and the current capacity, the hash table is <i>rehashed</i> (that is, internal
+ data structures are rebuilt) so that the hash table has approximately twice the number of buckets.
+ </p>
+ <p>
+ As a general rule, the default load factor (.75) offers a good tradeoff between time and space costs. Higher values
+ decrease the space overhead but increase the lookup cost (reflected in most of the operations of the <code>HashMap</code>
+ class, including <code>get</code> and <code>put</code>). The expected number of entries in the map and its load factor should
+ be taken into account when setting its initial capacity, so as to minimize the number of rehash operations. If the
+ initial capacity is greater than the maximum number of entries divided by the load factor, no rehash operations will
+ ever occur.
+ </p>
+ <p>
+ If many mappings are to be stored in a <code>MultivaluedHashMap</code> instance, creating it with a sufficiently large
+ capacity will allow the mappings to be stored more efficiently than letting it perform automatic rehashing as needed
+ to grow the table.
+ </p>
+ <p>
+ <strong>Note that this implementation is not guaranteed to be synchronized.</strong> If multiple threads access a
+ hash map concurrently, and at least one of the threads modifies the map structurally, it <i>must</i> be synchronized
+ externally. (A structural modification is any operation that adds or deletes one or more mappings; merely changing
+ the value associated with a key that an instance already contains is not a structural modification.) This is
+ typically accomplished by synchronizing on some object that naturally encapsulates the map.
+ </p>
+ <p>
+ The iterators returned by all of this class's "collection view methods" are <i>fail-fast</i>: if the map is
+ structurally modified at any time after the iterator is created, in any way except through the iterator's own
+ <code>remove</code> method, the iterator will throw a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ConcurrentModificationException.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ConcurrentModificationException</code></a>. Thus, in the face of
+ concurrent modification, the iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic
+ behavior at an undetermined time in the future.
+ </p>
+ Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make
+ any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw
+ <code>ConcurrentModificationException</code> on a best-effort basis. Therefore, it would be wrong to write a program that
+ depended on this exception for its correctness: <i>the fail-fast behavior of iterators should be used only to detect
+ bugs.</i></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#jakarta.ws.rs.core.MultivaluedHashMap">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.jakarta.ws.rs.core.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;jakarta.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#store">store</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MultivaluedHashMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity (<code>16</code>) and the default load factor
+ (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and the default load factor
+ (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,float)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity,
+                  float&nbsp;loadFactor)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and load factor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">MultivaluedHashMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#add(K,V)">add</a>, <a href="AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll</a>, <a href="AbstractMultivaluedMap.html#addAll(K,V...)">addAll</a>, <a href="AbstractMultivaluedMap.html#addFirst(K,V)">addFirst</a>, <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull</a>, <a href="AbstractMultivaluedMap.html#addNull(java.util.List)">addNull</a>, <a href="AbstractMultivaluedMap.html#clear()">clear</a>, <a href="AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey</a>, <a href="AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue</a>, <a href="AbstractMultivaluedMap.html#entrySet()">entrySet</a>, <a href="AbstractMultivaluedMap.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a>, <a href="AbstractMultivaluedMap.html#get(java.lang.Object)">get</a>, <a href="AbstractMultivaluedMap.html#getFirst(K)">getFirst</a>, <a href="AbstractMultivaluedMap.html#getValues(K)">getValues</a>, <a href="AbstractMultivaluedMap.html#hashCode()">hashCode</a>, <a href="AbstractMultivaluedMap.html#isEmpty()">isEmpty</a>, <a href="AbstractMultivaluedMap.html#keySet()">keySet</a>, <a href="AbstractMultivaluedMap.html#put(K,java.util.List)">put</a>, <a href="AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll</a>, <a href="AbstractMultivaluedMap.html#putSingle(K,V)">putSingle</a>, <a href="AbstractMultivaluedMap.html#remove(java.lang.Object)">remove</a>, <a href="AbstractMultivaluedMap.html#size()">size</a>, <a href="AbstractMultivaluedMap.html#toString()">toString</a>, <a href="AbstractMultivaluedMap.html#values()">values</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap()</pre>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity (<code>16</code>) and the default load factor
+ (<code>0.75</code>).</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and the default load factor
+ (<code>0.75</code>).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the initial capacity is negative.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity,
+                          float&nbsp;loadFactor)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial capacity and load factor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity</dd>
+<dd><code>loadFactor</code> - the load factor</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the initial capacity is negative or the load factor is nonpositive</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a>. The
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> instances holding the values of each key are created anew instead of being reused.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the multivalued map whose mappings are to be placed in this multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the single-valued map whose mappings are to be placed in this multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedMap.html
new file mode 100644
index 0000000..8c13788
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/MultivaluedMap.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MultivaluedMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface MultivaluedMap" class="title">Interface MultivaluedMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map</dd>
+<dd><code>V</code> - the type of mapped values</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></code>, <code><a href="MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</pre>
+<div class="block">A map of key-values pairs. Each key can have zero or more values.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+   <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">Add all the values from the supplied value list to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+        <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the first position in the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsKey</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsValue</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet()" title="class or interface in java.util" class="externalLink">entrySet</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#get(java.lang.Object)" title="class or interface in java.util" class="externalLink">get</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#keySet()" title="class or interface in java.util" class="externalLink">keySet</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put(K,V)" title="class or interface in java.util" class="externalLink">put</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll(java.util.Map)" title="class or interface in java.util" class="externalLink">putAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#values()" title="class or interface in java.util" class="externalLink">values</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">void&nbsp;putSingle&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+               <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value. Any existing values will be replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">void&nbsp;add&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block">Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty,
+ method returns immediately. Method throws a <code>NullPointerException</code> if the supplied array of values is
+ <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied array of new values is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block">Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied
+ value list is empty, method returns immediately. Method throws a <code>NullPointerException</code> if the supplied array
+ of values is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied value list is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">void&nbsp;addFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+              <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the first position in the current list of values for the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</pre>
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the
+ values associated with each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherMap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/NewCookie.html b/apidocs/3.0.0/jakarta/ws/rs/core/NewCookie.html
new file mode 100644
index 0000000..ff4a060
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/NewCookie.html
@@ -0,0 +1,916 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NewCookie (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NewCookie (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NewCookie.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class NewCookie" class="title">Class NewCookie</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="Cookie.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.Cookie</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.NewCookie</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">NewCookie</span>
+extends <a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></pre>
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></span></code></th>
+<td class="colLast">
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.jakarta.ws.rs.core.Cookie">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;jakarta.ws.rs.core.<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></h3>
+<code><a href="Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Cookie)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         int&nbsp;version,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         int&nbsp;version,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compare for equality.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComment()">getComment</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the comment associated with the cookie.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExpiry()">getExpiry</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the cookie expiry date.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxAge()">getMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the maximum age of the the cookie in seconds.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHttpOnly()">isHttpOnly</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Whether the cookie will only be sent over a secure connection.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toCookie()">toCookie</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a <a href="Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a> with the same name, value, path, domain and version as this
+ <code>NewCookie</code>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version.</div>
+</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Cookie">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;jakarta.ws.rs.core.<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></h3>
+<code><a href="Cookie.html#getDomain()">getDomain</a>, <a href="Cookie.html#getName()">getName</a>, <a href="Cookie.html#getPath()">getPath</a>, <a href="Cookie.html#getValue()">getValue</a>, <a href="Cookie.html#getVersion()">getVersion</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_MAX_AGE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_MAX_AGE</h4>
+<pre>public static final&nbsp;int DEFAULT_MAX_AGE</pre>
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.NewCookie.DEFAULT_MAX_AGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 int&nbsp;version,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie</dd>
+<dd><code>value</code> - the value of the cookie</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies</dd>
+<dd><code>comment</code> - the comment</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 int&nbsp;version,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie</dd>
+<dd><code>value</code> - the value of the cookie</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies</dd>
+<dd><code>comment</code> - the comment</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds</dd>
+<dd><code>expiry</code> - the cookie expiry date.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Cookie)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</pre>
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>expiry</code> - the cookie expiry date.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public static&nbsp;<a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.</div>
+</div>
+<div class="block">Creates a new instance of NewCookie by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cookie string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created <code>NewCookie</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getComment()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComment</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getComment()</pre>
+<div class="block">Get the comment associated with the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the comment or null if none set</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxAge()</pre>
+<div class="block">Get the maximum age of the the cookie in seconds. Cookies older than the maximum age are discarded. A cookie can be
+ unset by sending a new cookie with maximum age of 0 since it will overwrite any existing cookie and then be
+ immediately discarded. The default value of <code>-1</code> indicates that the cookie will be discarded at the end of the
+ browser/application session.
+ <p>
+ Note that it is recommended to use <code>Max-Age</code> to control cookie expiration, however some browsers do not
+ understand <code>Max-Age</code>, in which case setting <a href="#getExpiry()"><code>getExpiry()</code></a> Expires} parameter may be necessary.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum age in seconds.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getExpiry()"><code>getExpiry()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getExpiry()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExpiry</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getExpiry()</pre>
+<div class="block">Get the cookie expiry date. Cookies whose expiry date has passed are discarded. A cookie can be unset by setting a
+ new cookie with an expiry date in the past, typically the lowest possible date that can be set.
+ <p>
+ Note that it is recommended to use <a href="#getMaxAge()"><code>Max-Age</code></a> to control cookie expiration, however some browsers
+ do not understand <code>Max-Age</code>, in which case setting <code>Expires</code> parameter may be necessary.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>cookie expiry date or <code>null</code> if no expiry date was set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getMaxAge()"><code>getMaxAge()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block">Whether the cookie will only be sent over a secure connection. Defaults to <code>false</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the cookie will only be sent over a secure connection, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isHttpOnly()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isHttpOnly</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isHttpOnly()</pre>
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute. This means that the cookie should not be
+ accessible to scripting engines, like javascript.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this cookie should be considered http only, <code>false</code> otherwise.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="toCookie()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toCookie</h4>
+<pre class="methodSignature">public&nbsp;<a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;toCookie()</pre>
+<div class="block">Obtain a new instance of a <a href="Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a> with the same name, value, path, domain and version as this
+ <code>NewCookie</code>. This method can be used to obtain an object that can be compared for equality with another
+ <code>Cookie</code>; since a <code>Cookie</code> will never compare equal to a <code>NewCookie</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <a href="Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.</div>
+</div>
+<div class="block">Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cookie.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compare for equality. Use <a href="#toCookie()"><code>toCookie()</code></a> to compare a <code>NewCookie</code> to a <code>Cookie</code> considering only the
+ common properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the object is a <code>NewCookie</code> with the same value for all properties, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NewCookie.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/NoContentException.html b/apidocs/3.0.0/jakarta/ws/rs/core/NoContentException.html
new file mode 100644
index 0000000..c4f5b8c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/NoContentException.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>NoContentException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NoContentException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoContentException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class NoContentException" class="title">Class NoContentException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.NoContentException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NoContentException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">An I/O exception thrown by <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.
+ <p>
+ This exception, when thrown while reading a server request entity, is automatically translated by JAX-RS server
+ runtime into a <a href="../BadRequestException.html" title="class in jakarta.ws.rs"><code>BadRequestException</code></a> wrapping the original <code>NoContentException</code> and rethrown
+ for a standard processing by the registered <a href="../ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><code>exception mappers</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#jakarta.ws.rs.core.NoContentException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoContentException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/PathSegment.html b/apidocs/3.0.0/jakarta/ws/rs/core/PathSegment.html
new file mode 100644
index 0000000..3a5ee59
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/PathSegment.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>PathSegment (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathSegment (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface PathSegment" class="title">Interface PathSegment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">PathSegment</span></pre>
+<div class="block">Represents a URI path segment and any associated matrix parameters. When an instance of this type is injected with
+ <a href="../PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, the value of the annotation identifies which path segment is selected and the presence
+ of an <a href="../Encoded.html" title="annotation in jakarta.ws.rs"><code>Encoded</code></a> annotation will result in an instance that supplies the path and matrix parameter
+ values in URI encoded form.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getPathSegments()"><code>UriInfo.getPathSegments()</code></a>, 
+<a href="../PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path segment.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path segment.
+ <p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the path segment</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatrixParameters()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMatrixParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMatrixParameters()</pre>
+<div class="block">Get a map of the matrix parameters associated with the path segment. The map keys are the names of the matrix
+ parameters with any percent-escaped octets decoded.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the map of matrix parameters</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Request.html b/apidocs/3.0.0/jakarta/ws/rs/core/Request.html
new file mode 100644
index 0000000..9bd398b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Request.html
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Request (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Request (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Request.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Request" class="title">Interface Request</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Request</span></pre>
+<div class="block">An injectable helper for request processing, all methods throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g. from a provider constructor).
+
+ Precondition processing (see the <code>evaluatePreconditions</code> methods) can result in either a <code>null</code> return
+ value to indicate that preconditions have been met and that the request should continue, or a non-<code>null</code> return
+ value to indicate that preconditions were not met. In the event that preconditions were not met, the returned
+ <code>ResponseBuilder</code> instance will have an appropriate status and will also include a <code>Vary</code> header if the
+ <a href="#selectVariant(java.util.List)"><code>selectVariant(List)</code></a> method was called prior to to calling <code>evaluatePreconditions</code>. It is the
+ responsibility of the caller to check the status and add additional metadata if required. E.g., see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1, section 10.3.5</a> for details
+ of the headers that are expected to accompany a <code>304 Not Modified</code> response.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions()">evaluatePreconditions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions for a resource that does not currently exist.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(java.util.Date)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method, e.g.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method, e.g. GET, POST, etc.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="selectVariant(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectVariant</h4>
+<pre class="methodSignature"><a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;selectVariant&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Select the representation variant that best matches the request. Returns <code>null</code> in case there is no matching
+ variant in the list.
+ <p>
+ More explicit variants are chosen ahead of less explicit ones. A vary header is computed from the supplied list and
+ automatically added to the response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of Variant that describe all of the available representation variants.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the variant that best matches the request or <code>null</code> if there's no match.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if variants is empty or <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(jakarta.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eTag</code> - an ETag for the current state of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with the appropriate status if the
+ preconditions are not met. A returned <code>ResponseBuilder</code> will include an ETag header set with the value of eTag,
+ provided none of the precondition evaluation has failed, in which case the ETag header would not be included and the
+ status code of the returned <code>ResponseBuilder</code> would be set to <a href="Response.Status.html#PRECONDITION_FAILED"><code>Response.Status.PRECONDITION_FAILED</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if eTag is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - a date that specifies the modification date of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with the appropriate status if the
+ preconditions are not met.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if lastModified is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                                               <a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - a date that specifies the modification date of the resource</dd>
+<dd><code>eTag</code> - an ETag for the current state of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with the appropriate status if the
+ preconditions are not met. A returned <code>ResponseBuilder</code> will include an ETag header set with the value of eTag,
+ provided none of the precondition evaluation has failed, in which case the ETag header would not be included and the
+ status code of the returned <code>ResponseBuilder</code> would be set to <a href="Response.Status.html#PRECONDITION_FAILED"><code>Response.Status.PRECONDITION_FAILED</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if lastModified or eTag is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions()</pre>
+<div class="block">Evaluate request preconditions for a resource that does not currently exist. The primary use of this method is to
+ support the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24"> If-Match: *</a> and
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26"> If-None-Match: *</a> preconditions.
+
+ <p>
+ Note that both preconditions <code>If-None-Match: *</code> and <code>If-None-Match: <i>something</i></code> will always be
+ considered to have been met and it is the applications responsibility to enforce any additional method-specific
+ semantics. E.g. a <code>PUT</code> on a resource that does not exist might succeed whereas a <code>GET</code> on a resource
+ that does not exist would likely result in a 404 response. It would be the responsibility of the application to
+ generate the 404 response.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with the appropriate status if the
+ preconditions are not met.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Request.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Response.ResponseBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/Response.ResponseBuilder.html
new file mode 100644
index 0000000..d1e2c98
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Response.ResponseBuilder.html
@@ -0,0 +1,1161 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Response.ResponseBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.ResponseBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":9,"i20":6,"i21":6,"i22":6,"i23":10,"i24":10,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.ResponseBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Response.ResponseBuilder" class="title">Class Response.ResponseBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Response.ResponseBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in jakarta.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">Response.ResponseBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity. An initial
+ instance may be obtained via static methods of the Response class, instance methods provide the ability to set
+ metadata. E.g. to create a response that indicates the creation of a new resource:
+
+ <pre>
+ &#64;POST
+ Response addWidget(...) {
+   Widget w = ...
+   URI widgetId = UriBuilder.fromResource(Widget.class)...
+   return Response.created(widgetId).build();
+ }
+ </pre>
+
+ <p>
+ Several methods have parameters of type URI, <a href="UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> provides convenient methods to create such values as
+ does <code>URI.create()</code>.
+ </p>
+
+ <p>
+ Where multiple variants of the same method are provided, the type of the supplied parameter is retained in the
+ metadata of the built <code>Response</code>.
+ </p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static methods of <code>Response</code> to obtain an instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allow(java.lang.String...)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allow(java.util.Set)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentLocation(java.net.URI)">contentLocation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the content location.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(jakarta.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoding(java.lang.String)">encoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity content encoding.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(java.lang.Object)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">
+ Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">
+ Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expires(java.util.Date)">expires</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</code></th>
+<td class="colLast">
+<div class="block">Set the response expiration date.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#language(java.lang.String)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#language(java.util.Locale)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lastModified(java.util.Date)">lastModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity last modification date.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.lang.String,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.net.URI,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#links(jakarta.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#location(java.net.URI)">location</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the location.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>protected static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceAll(jakarta.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tag(jakarta.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tag(java.lang.String)">tag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">
+ Set a strong response entity tag.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(jakarta.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variant(jakarta.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">
+ Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variants(jakarta.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ResponseBuilder</h4>
+<pre>protected&nbsp;ResponseBuilder()</pre>
+<div class="block">Protected constructor, use one of the static methods of <code>Response</code> to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">protected static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Create a new builder instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;build()</pre>
+<div class="block">Create a Response instance from the current ResponseBuilder. The builder is reset to a blank state equivalent to
+ calling the ok method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a Response instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;clone()</pre>
+<div class="block">
+ <p>
+ Create a copy of the ResponseBuilder preserving its state.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a copy of the ResponseBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater than <code>599</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dd><code>reasonPhrase</code> - the reason phrase.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater than <code>599</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="status(jakarta.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+<a id="status(jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;entity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block"><p>
+ Set the response entity in the builder.
+ </p>
+ <p>
+ Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers
+ responsibility to wrap the actual entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.
+ Note that the entity can be also set as an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>.
+ </p>
+ A specific entity media type can be set using one of the <code>type(...)</code> methods.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the request entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated response builder instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)"><code>entity(java.lang.Object, java.lang.annotation.Annotation[])</code></a>, 
+<a href="#type(jakarta.ws.rs.core.MediaType)"><code>type(jakarta.ws.rs.core.MediaType)</code></a>, 
+<a href="#type(java.lang.String)"><code>type(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;entity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block"><p>
+ Set the response entity in the builder.
+ </p>
+ <p>
+ Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers
+ responsibility to wrap the actual entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.
+ Note that the entity can be also set as an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>.
+ </p>
+ A specific entity media type can be set using one of the <code>type(...)</code> methods.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the request entity.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>, (in addition to any annotations
+ declared directly on a resource method that returns the built response).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated response builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#entity(java.lang.Object)"><code>entity(java.lang.Object)</code></a>, 
+<a href="#type(jakarta.ws.rs.core.MediaType)"><code>type(jakarta.ws.rs.core.MediaType)</code></a>, 
+<a href="#type(java.lang.String)"><code>type(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="allow(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allow</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;allow&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</pre>
+<div class="block">Set the list of allowed methods for the resource. Any duplicate method names will be truncated to a single entry.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>methods</code> - the methods to be listed as allowed for the resource, if <code>null</code> any existing allowed method list
+ will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="allow(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allow</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;allow&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;methods)</pre>
+<div class="block">Set the list of allowed methods for the resource.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>methods</code> - the methods to be listed as allowed for the resource, if <code>null</code> any existing allowed method list
+ will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="cacheControl(jakarta.ws.rs.core.CacheControl)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheControl</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;cacheControl&#8203;(<a href="CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</pre>
+<div class="block">Set the cache control data of the message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cacheControl</code> - the cache control directives, if <code>null</code> any existing cache control directives will be
+ removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="encoding(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoding</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;encoding&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Set the message entity content encoding.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encoding</code> - the content encoding of the message entity, if <code>null</code> any existing value for content encoding
+ will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="header(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>header</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;header&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Add an arbitrary header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the header</dd>
+<dd><code>value</code> - the value of the header, the header will be serialized using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the class of <code>value</code> or using
+ its <code>toString</code> method if a header delegate is not available. If <code>value</code> is <code>null</code> then all current
+ headers of the same name will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceAll(jakarta.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceAll</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;replaceAll&#8203;(<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</pre>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headers</code> - new headers to be set, if <code>null</code> all existing headers will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="language(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>language</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;language&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</pre>
+<div class="block">Set the message entity language.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - the language of the message entity, if <code>null</code> any existing value for language will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="language(java.util.Locale)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>language</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;language&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</pre>
+<div class="block">Set the message entity language.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - the language of the message entity, if <code>null</code> any existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;type&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</pre>
+<div class="block">Set the message entity media type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type of the message entity. If <code>null</code>, any existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;type&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Set the message entity media type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type of the message entity. If <code>null</code>, any existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="variant(jakarta.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variant</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variant&#8203;(<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block"><p>
+ Set message entity representation metadata.
+ </p>
+ Equivalent to setting the values of content type, content language, and content encoding separately using the values
+ of the variant properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variant</code> - metadata of the message entity, a <code>null</code> value is equivalent to a variant with all <code>null</code>
+ properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#encoding(java.lang.String)"><code>encoding(java.lang.String)</code></a>, 
+<a href="#language(java.util.Locale)"><code>language(java.util.Locale)</code></a>, 
+<a href="#type(jakarta.ws.rs.core.MediaType)"><code>type(jakarta.ws.rs.core.MediaType)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="contentLocation(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contentLocation</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;contentLocation&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Set the content location.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the content location. Relative or absolute URIs may be used for the value of content location. If
+ <code>null</code> any existing value for content location will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(jakarta.ws.rs.core.NewCookie...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;cookie&#8203;(<a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>...&nbsp;cookies)</pre>
+<div class="block">Add cookies to the response message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookies</code> - new cookies that will accompany the response. A <code>null</code> value will remove all cookies, including
+ those added via the <a href="#header(java.lang.String,java.lang.Object)"><code>header(java.lang.String, java.lang.Object)</code></a> method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="expires(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>expires</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;expires&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</pre>
+<div class="block">Set the response expiration date.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>expires</code> - the expiration date, if <code>null</code> removes any existing expires value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="lastModified(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lastModified</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;lastModified&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</pre>
+<div class="block">Set the response entity last modification date.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - the last modified date, if <code>null</code> any existing last modified value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="location(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>location</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;location&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Set the location.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the location. If a relative URI is supplied it will be converted into an absolute URI by resolving it
+ relative to the base URI of the application (see <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>). If <code>null</code> any existing value for
+ location will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tag(jakarta.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;tag&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</pre>
+<div class="block">Set a response entity tag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the entity tag, if <code>null</code> any existing entity tag value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tag(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;tag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</pre>
+<div class="block"><p>
+ Set a strong response entity tag.
+ </p>
+ This is a shortcut for <code>tag(new EntityTag(<i>value</i>))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the string content of a strong entity tag. The JAX-RS runtime will quote the supplied value when creating
+ the header. If <code>null</code> any existing entity tag value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="variants(jakarta.ws.rs.core.Variant...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variants</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variants&#8203;(<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>...&nbsp;variants)</pre>
+<div class="block">Add a Vary header that lists the available variants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of available representation variants, a <code>null</code> value will remove an existing value for
+ Vary header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="variants(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variants</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variants&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Add a Vary header that lists the available variants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of available representation variants, a <code>null</code> value will remove an existing value for
+ Vary header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="links(jakarta.ws.rs.core.Link...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>links</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;links&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>...&nbsp;links)</pre>
+<div class="block">Add one or more link headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>links</code> - links to be added to the message as headers, a <code>null</code> value will remove any existing Link headers.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.net.URI,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Add a link header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link header.</dd>
+<dd><code>rel</code> - value of "rel" parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Add a link header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link header.</dd>
+<dd><code>rel</code> - value of "rel" parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.ResponseBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.Family.html b/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.Family.html
new file mode 100644
index 0000000..1540f6a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.Family.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Response.Status.Family (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.Status.Family (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.Family.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Enum Response.Status.Family" class="title">Enum Response.Status.Family</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Response.Status.Family</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">Response.Status.Family</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&gt;</pre>
+<div class="block">An enumeration representing the class of status code. Family is used here since class is overloaded in Java.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLIENT_ERROR">CLIENT_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INFORMATIONAL">INFORMATIONAL</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OTHER">OTHER</a></span></code></th>
+<td class="colLast">
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REDIRECTION">REDIRECTION</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVER_ERROR">SERVER_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUCCESSFUL">SUCCESSFUL</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#familyOf(int)">familyOf</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Get the response status family for the status code.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="INFORMATIONAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INFORMATIONAL</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> INFORMATIONAL</pre>
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="SUCCESSFUL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUCCESSFUL</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> SUCCESSFUL</pre>
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="REDIRECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REDIRECTION</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> REDIRECTION</pre>
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="CLIENT_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> CLIENT_ERROR</pre>
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> SERVER_ERROR</pre>
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="OTHER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OTHER</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> OTHER</pre>
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Response.Status.Family c : Response.Status.Family.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="familyOf(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>familyOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&nbsp;familyOf&#8203;(int&nbsp;statusCode)</pre>
+<div class="block">Get the response status family for the status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusCode</code> - response status code to get the family for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>family of the response status code.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.Family.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.html b/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.html
new file mode 100644
index 0000000..caa8bf8
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Response.Status.html
@@ -0,0 +1,1307 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Response.Status (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.Status (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Enum Response.Status" class="title">Enum Response.Status</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Response.Status</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in jakarta.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">Response.Status</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&gt;
+implements <a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></pre>
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list. Additional status codes can be added by applications by creating an implementation of <a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core"><code>Response.StatusType</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></span></code></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ACCEPTED">ACCEPTED</a></span></code></th>
+<td class="colLast">
+<div class="block">202 Accepted, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BAD_GATEWAY">BAD_GATEWAY</a></span></code></th>
+<td class="colLast">
+<div class="block">502 Bad Gateway, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BAD_REQUEST">BAD_REQUEST</a></span></code></th>
+<td class="colLast">
+<div class="block">400 Bad Request, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CONFLICT">CONFLICT</a></span></code></th>
+<td class="colLast">
+<div class="block">409 Conflict, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CREATED">CREATED</a></span></code></th>
+<td class="colLast">
+<div class="block">201 Created, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#EXPECTATION_FAILED">EXPECTATION_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">417 Expectation Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#FORBIDDEN">FORBIDDEN</a></span></code></th>
+<td class="colLast">
+<div class="block">403 Forbidden, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#FOUND">FOUND</a></span></code></th>
+<td class="colLast">
+<div class="block">302 Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GATEWAY_TIMEOUT">GATEWAY_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">504 Gateway Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GONE">GONE</a></span></code></th>
+<td class="colLast">
+<div class="block">410 Gone, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#HTTP_VERSION_NOT_SUPPORTED">HTTP_VERSION_NOT_SUPPORTED</a></span></code></th>
+<td class="colLast">
+<div class="block">505 HTTP Version Not Supported, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INTERNAL_SERVER_ERROR">INTERNAL_SERVER_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block">500 Internal Server Error, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#LENGTH_REQUIRED">LENGTH_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">411 Length Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#METHOD_NOT_ALLOWED">METHOD_NOT_ALLOWED</a></span></code></th>
+<td class="colLast">
+<div class="block">405 Method Not Allowed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MOVED_PERMANENTLY">MOVED_PERMANENTLY</a></span></code></th>
+<td class="colLast">
+<div class="block">301 Moved Permanently, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NETWORK_AUTHENTICATION_REQUIRED">NETWORK_AUTHENTICATION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">511 Network Authentication Required, see <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_CONTENT">NO_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">204 No Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_ACCEPTABLE">NOT_ACCEPTABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">406 Not Acceptable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_FOUND">NOT_FOUND</a></span></code></th>
+<td class="colLast">
+<div class="block">404 Not Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_IMPLEMENTED">NOT_IMPLEMENTED</a></span></code></th>
+<td class="colLast">
+<div class="block">501 Not Implemented, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_MODIFIED">NOT_MODIFIED</a></span></code></th>
+<td class="colLast">
+<div class="block">304 Not Modified, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OK">OK</a></span></code></th>
+<td class="colLast">
+<div class="block">200 OK, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PARTIAL_CONTENT">PARTIAL_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">206 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PAYMENT_REQUIRED">PAYMENT_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">402 Payment Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PRECONDITION_FAILED">PRECONDITION_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">412 Precondition Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PRECONDITION_REQUIRED">PRECONDITION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">428 Precondition required, see <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP
+ Status Codes</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PROXY_AUTHENTICATION_REQUIRED">PROXY_AUTHENTICATION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">407 Proxy Authentication Required, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_ENTITY_TOO_LARGE">REQUEST_ENTITY_TOO_LARGE</a></span></code></th>
+<td class="colLast">
+<div class="block">413 Request Entity Too Large, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_HEADER_FIELDS_TOO_LARGE">REQUEST_HEADER_FIELDS_TOO_LARGE</a></span></code></th>
+<td class="colLast">
+<div class="block">431 Request Header Fields Too Large, see <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_TIMEOUT">REQUEST_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">408 Request Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_URI_TOO_LONG">REQUEST_URI_TOO_LONG</a></span></code></th>
+<td class="colLast">
+<div class="block">414 Request-URI Too Long, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUESTED_RANGE_NOT_SATISFIABLE">REQUESTED_RANGE_NOT_SATISFIABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">416 Requested Range Not Satisfiable, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#RESET_CONTENT">RESET_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">205 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SEE_OTHER">SEE_OTHER</a></span></code></th>
+<td class="colLast">
+<div class="block">303 See Other, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVICE_UNAVAILABLE">SERVICE_UNAVAILABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">503 Service Unavailable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEMPORARY_REDIRECT">TEMPORARY_REDIRECT</a></span></code></th>
+<td class="colLast">
+<div class="block">307 Temporary Redirect, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TOO_MANY_REQUESTS">TOO_MANY_REQUESTS</a></span></code></th>
+<td class="colLast">
+<div class="block">429 Too Many Requests, see <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status
+ Codes</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNAUTHORIZED">UNAUTHORIZED</a></span></code></th>
+<td class="colLast">
+<div class="block">401 Unauthorized, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNSUPPORTED_MEDIA_TYPE">UNSUPPORTED_MEDIA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">415 Unsupported Media Type, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#USE_PROXY">USE_PROXY</a></span></code></th>
+<td class="colLast">
+<div class="block">305 Use Proxy, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1
+ documentation</a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromStatusCode(int)">fromStatusCode</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusCode()">getStatusCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the associated status code.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.core.Response.StatusType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.core.<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></h3>
+<code><a href="Response.StatusType.html#toEnum()">toEnum</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="OK">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OK</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> OK</pre>
+<div class="block">200 OK, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>.</div>
+</li>
+</ul>
+<a id="CREATED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> CREATED</pre>
+<div class="block">201 Created, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="ACCEPTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> ACCEPTED</pre>
+<div class="block">202 Accepted, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="NO_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NO_CONTENT</pre>
+<div class="block">204 No Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="RESET_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESET_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> RESET_CONTENT</pre>
+<div class="block">205 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PARTIAL_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PARTIAL_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> PARTIAL_CONTENT</pre>
+<div class="block">206 Reset Content, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="MOVED_PERMANENTLY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MOVED_PERMANENTLY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> MOVED_PERMANENTLY</pre>
+<div class="block">301 Moved Permanently, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FOUND</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> FOUND</pre>
+<div class="block">302 Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="SEE_OTHER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEE_OTHER</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> SEE_OTHER</pre>
+<div class="block">303 See Other, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="NOT_MODIFIED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_MODIFIED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NOT_MODIFIED</pre>
+<div class="block">304 Not Modified, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="USE_PROXY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USE_PROXY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> USE_PROXY</pre>
+<div class="block">305 Use Proxy, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="TEMPORARY_REDIRECT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEMPORARY_REDIRECT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> TEMPORARY_REDIRECT</pre>
+<div class="block">307 Temporary Redirect, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="BAD_REQUEST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BAD_REQUEST</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> BAD_REQUEST</pre>
+<div class="block">400 Bad Request, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="UNAUTHORIZED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNAUTHORIZED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> UNAUTHORIZED</pre>
+<div class="block">401 Unauthorized, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="PAYMENT_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PAYMENT_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> PAYMENT_REQUIRED</pre>
+<div class="block">402 Payment Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="FORBIDDEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FORBIDDEN</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> FORBIDDEN</pre>
+<div class="block">403 Forbidden, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NOT_FOUND</pre>
+<div class="block">404 Not Found, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="METHOD_NOT_ALLOWED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METHOD_NOT_ALLOWED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> METHOD_NOT_ALLOWED</pre>
+<div class="block">405 Method Not Allowed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="NOT_ACCEPTABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_ACCEPTABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NOT_ACCEPTABLE</pre>
+<div class="block">406 Not Acceptable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="PROXY_AUTHENTICATION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_AUTHENTICATION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> PROXY_AUTHENTICATION_REQUIRED</pre>
+<div class="block">407 Proxy Authentication Required, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> REQUEST_TIMEOUT</pre>
+<div class="block">408 Request Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONFLICT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> CONFLICT</pre>
+<div class="block">409 Conflict, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="GONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GONE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> GONE</pre>
+<div class="block">410 Gone, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>.</div>
+</li>
+</ul>
+<a id="LENGTH_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LENGTH_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> LENGTH_REQUIRED</pre>
+<div class="block">411 Length Required, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PRECONDITION_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PRECONDITION_FAILED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> PRECONDITION_FAILED</pre>
+<div class="block">412 Precondition Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="REQUEST_ENTITY_TOO_LARGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_ENTITY_TOO_LARGE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> REQUEST_ENTITY_TOO_LARGE</pre>
+<div class="block">413 Request Entity Too Large, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_URI_TOO_LONG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_URI_TOO_LONG</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> REQUEST_URI_TOO_LONG</pre>
+<div class="block">414 Request-URI Too Long, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="UNSUPPORTED_MEDIA_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED_MEDIA_TYPE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> UNSUPPORTED_MEDIA_TYPE</pre>
+<div class="block">415 Unsupported Media Type, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="REQUESTED_RANGE_NOT_SATISFIABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUESTED_RANGE_NOT_SATISFIABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> REQUESTED_RANGE_NOT_SATISFIABLE</pre>
+<div class="block">416 Requested Range Not Satisfiable, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="EXPECTATION_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXPECTATION_FAILED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> EXPECTATION_FAILED</pre>
+<div class="block">417 Expectation Failed, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PRECONDITION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PRECONDITION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> PRECONDITION_REQUIRED</pre>
+<div class="block">428 Precondition required, see <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP
+ Status Codes</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="TOO_MANY_REQUESTS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TOO_MANY_REQUESTS</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> TOO_MANY_REQUESTS</pre>
+<div class="block">429 Too Many Requests, see <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status
+ Codes</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_HEADER_FIELDS_TOO_LARGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_HEADER_FIELDS_TOO_LARGE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> REQUEST_HEADER_FIELDS_TOO_LARGE</pre>
+<div class="block">431 Request Header Fields Too Large, see <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="INTERNAL_SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INTERNAL_SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> INTERNAL_SERVER_ERROR</pre>
+<div class="block">500 Internal Server Error, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="NOT_IMPLEMENTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_IMPLEMENTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NOT_IMPLEMENTED</pre>
+<div class="block">501 Not Implemented, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="BAD_GATEWAY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BAD_GATEWAY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> BAD_GATEWAY</pre>
+<div class="block">502 Bad Gateway, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="SERVICE_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVICE_UNAVAILABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> SERVICE_UNAVAILABLE</pre>
+<div class="block">503 Service Unavailable, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1
+ documentation</a>.</div>
+</li>
+</ul>
+<a id="GATEWAY_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GATEWAY_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> GATEWAY_TIMEOUT</pre>
+<div class="block">504 Gateway Timeout, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1
+ documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="HTTP_VERSION_NOT_SUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HTTP_VERSION_NOT_SUPPORTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> HTTP_VERSION_NOT_SUPPORTED</pre>
+<div class="block">505 HTTP Version Not Supported, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="NETWORK_AUTHENTICATION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NETWORK_AUTHENTICATION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> NETWORK_AUTHENTICATION_REQUIRED</pre>
+<div class="block">511 Network Authentication Required, see <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional
+ HTTP Status Codes</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Response.Status c : Response.Status.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="getFamily()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFamily</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&nbsp;getFamily()</pre>
+<div class="block">Get the class of status code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getFamily()">getFamily</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getStatusCode()</pre>
+<div class="block">Get the associated status code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getStatusCode()">getStatusCode</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReasonPhrase()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getReasonPhrase()">getReasonPhrase</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromStatusCode(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromStatusCode</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;fromStatusCode&#8203;(int&nbsp;statusCode)</pre>
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusCode</code> - the numerical status code.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the matching Status or null is no matching Status is defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Response.StatusType.html b/apidocs/3.0.0/jakarta/ws/rs/core/Response.StatusType.html
new file mode 100644
index 0000000..6a49175
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Response.StatusType.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Response.StatusType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.StatusType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":18};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.StatusType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface Response.StatusType" class="title">Interface Response.StatusType</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in jakarta.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Response.StatusType</span></pre>
+<div class="block">Base interface for statuses used in responses.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusCode()">getStatusCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the associated status code.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>default <a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toEnum()">toEnum</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the this Status Type as a <a href="Response.Status.html" title="enum in jakarta.ws.rs.core"><code>Response.Status</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatusCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusCode</h4>
+<pre class="methodSignature">int&nbsp;getStatusCode()</pre>
+<div class="block">Get the associated status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFamily()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFamily</h4>
+<pre class="methodSignature"><a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>&nbsp;getFamily()</pre>
+<div class="block">Get the class of status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReasonPhrase()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="toEnum()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toEnum</h4>
+<pre class="methodSignature">default&nbsp;<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;toEnum()</pre>
+<div class="block">Get the this Status Type as a <a href="Response.Status.html" title="enum in jakarta.ws.rs.core"><code>Response.Status</code></a>.
+ <p>
+ Please note that returned status contains only a status code, the reason phrase is set to default one (corresponding
+ to the status code).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="Response.Status.html" title="enum in jakarta.ws.rs.core"><code>Response.Status</code></a> representing this status type.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.StatusType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Response.html b/apidocs/3.0.0/jakarta/ws/rs/core/Response.html
new file mode 100644
index 0000000..24d7582
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Response.html
@@ -0,0 +1,1735 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Response (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":6,"i3":6,"i4":9,"i5":9,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":10,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":6,"i38":6,"i39":6,"i40":6,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Response" class="title">Class Response</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Response</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Response</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.
+ <p>
+ An application class should not extend this class directly. <code>Response</code> class is reserved for an extension by a
+ JAX-RS implementation providers. An application should use one of the static methods to create a <code>Response</code>
+ instance using a ResponseBuilder.
+ </p>
+ <p>
+ Several methods have parameters of type URI, <a href="UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> provides convenient methods to create such values as
+ does <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true#create(java.lang.String)" title="class or interface in java.net" class="externalLink"><code>URI.create(java.lang.String)</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span></code></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span></code></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Response</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static methods to obtain a <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a
+ Response from that.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accepted()">accepted</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accepted(java.lang.Object)">accepted</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains a representation.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bufferEntity()">bufferEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Buffer the message entity data.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the underlying message entity input stream (if available and open) as well as releases any other resources
+ associated with the response (e.g.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#created(java.net.URI)">created</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a created resource, set the location header using the supplied value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResponse(jakarta.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an existing Response.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>abstract <a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their object values.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the message entity.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>abstract int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>abstract <a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as headers.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>abstract <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the message entity.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>abstract <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetadata()">getMetadata</a></span>()</code></th>
+<td class="colLast">
+<div class="block">See <a href="#getHeaders()"><code>getHeaders()</code></a>.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>abstract <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their string values.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the response.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#noContent()">noContent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified()">notModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified(jakarta.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified(java.lang.String)">notModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status and a strong entity tag.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok()">ok</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,jakarta.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,jakarta.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,java.lang.String)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(jakarta.ws.rs.core.GenericType)">readEntity</a></span>&#8203;(<a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(java.lang.Class)">readEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(java.lang.Class,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seeOther(java.net.URI)">seeOther</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#serverError()">serverError</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#temporaryRedirect(java.net.URI)">temporaryRedirect</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Response</h4>
+<pre>protected&nbsp;Response()</pre>
+<div class="block">Protected constructor, use one of the static methods to obtain a <a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a
+ Response from that.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">public abstract&nbsp;int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information. The returned value is never <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance. Returns <code>null</code> if the message does not contain an entity body.
+ <p>
+ If the entity is represented by an un-consumed <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a> the method will return the input
+ stream.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an entity body (i.e. when <a href="#hasEntity()"><code>hasEntity()</code></a>
+ returns <code>false</code>).</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity was previously fully consumed as an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, or
+ if the response has been <a href="#close()"><code>closed</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> if the content of the message cannot be mapped to an entity of the
+ requested type and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without <a href="#bufferEntity()"><code>buffering</code></a> the entity data
+ prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>.
+ Unless the supplied entity type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ wrapping the underlying <a href="NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if the content of the message cannot be mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream, the response has been <a href="#close()"><code>closed</code></a> already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> if the content of the message cannot be mapped to an entity of the
+ requested type and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without <a href="#bufferEntity()"><code>buffering</code></a> the entity data
+ prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>.
+ Unless the supplied entity type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity; may be generic.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ wrapping the underlying <a href="NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if the content of the message cannot be mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream, the response has been <a href="#close()"><code>closed</code></a> already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(java.lang.Class,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> if the content of the message cannot be mapped to an entity of the
+ requested type and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without <a href="#bufferEntity()"><code>buffering</code></a> the entity data
+ prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>.
+ Unless the supplied entity type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ wrapping the underlying <a href="NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if the content of the message cannot be mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream, the response has been <a href="#close()"><code>closed</code></a> already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> if the content of the message cannot be mapped to an entity of the
+ requested type and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without <a href="#bufferEntity()"><code>buffering</code></a> the entity data
+ prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>.
+ Unless the supplied entity type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity; may be generic.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a>
+ wrapping the underlying <a href="NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if the content of the message cannot be mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream, the response has been <a href="#close()"><code>closed</code></a> already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the response. The method returns <code>true</code> if the entity is present,
+ returns <code>false</code> otherwise.
+ <p>
+ Note that the method may return <code>true</code> also for response messages with a zero-length content, in case the
+ <code><a href="HttpHeaders.html#CONTENT_LENGTH">"Content-Length"</a></code> and
+ <code><a href="HttpHeaders.html#CONTENT_TYPE">"Content-Type"</a></code> headers are specified in the message. In such case, an
+ attempt to read the entity using one of the <code>readEntity(...)</code> methods will return a corresponding instance
+ representing a zero-length entity for a given Java type or produce a <a href="../ProcessingException.html" title="class in jakarta.ws.rs"><code>ProcessingException</code></a> in case no such
+ instance is available for the Java type.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message, <code>false</code> otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the response has been <a href="#close()"><code>closed</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="bufferEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bufferEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;bufferEntity()</pre>
+<div class="block">Buffer the message entity data.
+ <p>
+ In case the message entity is backed by an unconsumed entity input stream, all the bytes of the original entity input
+ stream are read and stored in a local buffer. The original entity input stream is consumed and automatically closed
+ as part of the operation and the method returns <code>true</code>.
+ </p>
+ <p>
+ In case the response entity instance is not backed by an unconsumed input stream an invocation of
+ <code>bufferEntity</code> method is ignored and the method returns <code>false</code>.
+ </p>
+ <p>
+ This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
+ calling the <code>bufferEntity()</code> method on an already buffered (and thus closed) message instance is legal and has
+ no further effect. Also, the result returned by the <code>bufferEntity()</code> method is consistent across all
+ invocations of the method on the same <code>Response</code> instance.
+ </p>
+ <p>
+ Buffering the message entity data allows for multiple invocations of <code>readEntity(...)</code> methods on the response
+ instance. Note however, that once the response instance itself is <a href="#close()"><code>closed</code></a>, the implementations are
+ expected to release the buffered message entity data too. Therefore any subsequent attempts to read a message entity
+ stream on such closed response will result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the message entity input stream was available and was buffered successfully, returns
+ <code>false</code> if the entity stream was not available.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if there was an error while buffering the entity input stream.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the response has been <a href="#close()"><code>closed</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;close()</pre>
+<div class="block">Close the underlying message entity input stream (if available and open) as well as releases any other resources
+ associated with the response (e.g. <a href="#bufferEntity()"><code>buffered message entity data</code></a>).
+ <p>
+ This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
+ calling the <code>close()</code> method on an already closed message instance is legal and has no further effect.
+ </p>
+ <p>
+ The <code>close()</code> method should be invoked on all instances that contain an un-consumed entity input stream to
+ ensure the resources associated with the instance are properly cleaned-up and prevent potential memory leaks. This is
+ typical for client-side scenarios where application layer code processes only the response headers and ignores the
+ response entity.
+ </p>
+ <p>
+ Any attempts to manipulate (read, get, buffer) a message entity on a closed response will result in an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - if there is an error closing the response.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the message entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if there is no response entity.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the message entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or null if not specified.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">public abstract&nbsp;int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other cases returns <code>-1</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case strings.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to Cookie.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as headers. Any links in the message that are relative must be resolved with
+ respect to the actual request URI that produced this response. Note that request URIs may be updated by filters, so
+ the actual request URI may differ from that in the original invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Does not return <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the link for the relation is present in the <a href="#getHeaders()"><code>message headers</code></a>,
+ <code>false</code> otherwise.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation. A relative link is resolved with respect to the actual request URI that produced this
+ response. Note that request URIs may be updated by filters, so the actual request URI may differ from that in the
+ original invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation. See <a href="#getLink(java.lang.String)"><code>getLink(java.lang.String)</code></a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getMetadata()</pre>
+<div class="block">See <a href="#getHeaders()"><code>getHeaders()</code></a>.
+
+ This method is considered deprecated. Users are encouraged to switch their code to use the <code>getHeaders()</code>
+ method instead. The method may be annotated as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>&#64;Deprecated</code></a> in a future release of JAX-RS API.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a multivalued map.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">public&nbsp;<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get view of the response headers and their object values.
+
+ The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the
+ underlying header data are reflected in this view.
+ <p>
+ On the server-side, when the message is sent, the non-string values will be serialized using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the class of the value or using the
+ values <code>toString</code> method if a header delegate is not available.
+ </p>
+ <p>
+ On the client side, the returned map is identical to the one returned by <a href="#getStringHeaders()"><code>getStringHeaders()</code></a>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as an object view of header values.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get view of the response headers and their string values.
+
+ The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the
+ underlying header data are reflected in this view.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one
+ is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the header value
+ class or using its <code>toString</code> method if a header delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then <code>null</code> is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromResponse(jakarta.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResponse</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;fromResponse&#8203;(<a href="Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an existing Response.
+ <p>
+ The returned builder has its own <a href="#getHeaders()"><code>response headers</code></a> but the header values are shared with the
+ original <code>Response</code> instance. The original response entity instance reference is set in the new response
+ builder.
+ </p>
+ <p>
+ Note that if the entity is backed by an un-consumed input stream, the reference to the stream is copied. In such case
+ make sure to <a href="#bufferEntity()"><code>buffer</code></a> the entity stream of the original response instance before passing it to
+ this method.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - a Response from which the status code, entity and <a href="#getHeaders()"><code>response headers</code></a> will be
+ copied.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="status(jakarta.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(jakarta.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater than <code>599</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dd><code>reasonPhrase</code> - the reason phrase.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater than <code>599</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="ok()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok()</pre>
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>type</code> - the media type of the entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>type</code> - the media type of the entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,jakarta.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>variant</code> - representation metadata.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="serverError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serverError</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;serverError()</pre>
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="created(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>created</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;created&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a created resource, set the location header using the supplied value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the URI of the new resource. If a relative URI is supplied it will be converted into an absolute URI
+ by resolving it relative to the base URI (see <a href="UriInfo.html#getRequestUri()"><code>UriInfo.getRequestUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="accepted()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accepted</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;accepted()</pre>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="accepted(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accepted</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;accepted&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains a representation. It is the callers responsibility
+ to wrap the actual entity with <a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="noContent()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>noContent</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;noContent()</pre>
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified()</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified(jakarta.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified&#8203;(<a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - a tag for the unmodified entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if tag is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status and a strong entity tag. This is a shortcut for
+ <code>notModified(new EntityTag(<i>value</i>))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the string content of a strong entity tag. The JAX-RS runtime will quote the supplied value when creating
+ the header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if tag is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="seeOther(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>seeOther</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;seeOther&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a redirection. Used in the redirect-after-POST (aka POST/redirect/GET) pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the redirection URI. If a relative URI is supplied it will be converted into an absolute URI by
+ resolving it relative to the base URI of the application (see <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="temporaryRedirect(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>temporaryRedirect</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;temporaryRedirect&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the redirection URI. If a relative URI is supplied it will be converted into an absolute URI by
+ resolving it relative to the base URI of the application (see <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="notAcceptable(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>notAcceptable</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notAcceptable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - list of variants that were available, a null value is equivalent to an empty list.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/SecurityContext.html b/apidocs/3.0.0/jakarta/ws/rs/core/SecurityContext.html
new file mode 100644
index 0000000..6721026
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/SecurityContext.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SecurityContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SecurityContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SecurityContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface SecurityContext" class="title">Interface SecurityContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">SecurityContext</span></pre>
+<div class="block">An injectable interface that provides access to security related information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BASIC_AUTH">BASIC_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Basic authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Client Certificate authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DIGEST_AUTH">DIGEST_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Digest authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORM_AUTH">FORM_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Form authentication.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAuthenticationScheme()">getAuthenticationScheme</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the string value of the authentication scheme used to protect the resource.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security" class="externalLink">Principal</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a <code>java.security.Principal</code> object containing the name of the current authenticated user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRole(java.lang.String)">isUserInRole</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;role)</code></th>
+<td class="colLast">
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role".</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="BASIC_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BASIC_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> BASIC_AUTH</pre>
+<div class="block">String identifier for Basic authentication. Value "BASIC"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.SecurityContext.BASIC_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CLIENT_CERT_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_CERT_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CLIENT_CERT_AUTH</pre>
+<div class="block">String identifier for Client Certificate authentication. Value "CLIENT_CERT"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.SecurityContext.CLIENT_CERT_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DIGEST_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DIGEST_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DIGEST_AUTH</pre>
+<div class="block">String identifier for Digest authentication. Value "DIGEST"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.SecurityContext.DIGEST_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="FORM_AUTH">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORM_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> FORM_AUTH</pre>
+<div class="block">String identifier for Form authentication. Value "FORM"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.core.SecurityContext.FORM_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security" class="externalLink">Principal</a>&nbsp;getUserPrincipal()</pre>
+<div class="block">Returns a <code>java.security.Principal</code> object containing the name of the current authenticated user. If the
+ user has not been authenticated, the method returns null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>java.security.Principal</code> containing the name of the user making this request; null if the user
+ has not been authenticated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="isUserInRole(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isUserInRole</h4>
+<pre class="methodSignature">boolean&nbsp;isUserInRole&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;role)</pre>
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role". If the user
+ has not been authenticated, the method returns <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>role</code> - a <code>String</code> specifying the name of the role</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>boolean</code> indicating whether the user making the request belongs to a given role;
+ <code>false</code> if the user has not been authenticated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">boolean&nbsp;isSecure()</pre>
+<div class="block">Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request was made using a secure channel, <code>false</code> otherwise</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getAuthenticationScheme()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAuthenticationScheme</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getAuthenticationScheme()</pre>
+<div class="block">Returns the string value of the authentication scheme used to protect the resource. If the resource is not
+ authenticated, null is returned.
+
+ Values are the same as the CGI variable AUTH_TYPE</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>one of the static members BASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH (suitable for == comparison)
+ or the container-specific string indicating the authentication scheme, or null if the request was not authenticated.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SecurityContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/StreamingOutput.html b/apidocs/3.0.0/jakarta/ws/rs/core/StreamingOutput.html
new file mode 100644
index 0000000..1387f4b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/StreamingOutput.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>StreamingOutput (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StreamingOutput (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StreamingOutput.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface StreamingOutput" class="title">Interface StreamingOutput</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">StreamingOutput</span></pre>
+<div class="block">A type that may be used as a resource method return value or as the entity in a <a href="Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> when the application
+ wishes to stream the output. This is a lightweight alternative to a <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>, 
+<a href="Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#write(java.io.OutputStream)">write</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)</code></th>
+<td class="colLast">
+<div class="block">Called to write the message body.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="write(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>write</h4>
+<pre class="methodSignature">void&nbsp;write&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)
+    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+           <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Called to write the message body.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - the OutputStream to write to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error is encountered</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - if a specific HTTP error response needs to be produced. Only effective if
+ thrown prior to any bytes being written to output.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StreamingOutput.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilder.html
new file mode 100644
index 0000000..915849e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilder.html
@@ -0,0 +1,1591 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>UriBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":6,"i15":6,"i16":9,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class UriBuilder" class="title">Class UriBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.UriBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">UriBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">URI template-aware utility class for building URIs from their components. See <a href="../Path.html#value()"><code>Path.value()</code></a> for an
+ explanation of URI templates.
+
+ <p>
+ Builder methods perform contextual encoding of characters not permitted in the corresponding URI component following
+ the rules of the
+ <a href="http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1">application/x-www-form-urlencoded</a> media type
+ for query parameters and <a href="http://ietf.org/rfc/rfc3986.txt">RFC 3986</a> for all other components. Note that
+ only characters not permitted in a particular component are subject to encoding so, e.g., a path supplied to one of
+ the <code>path</code> methods may contain matrix parameters or multiple path segments since the separators are legal
+ characters and will not be encoded. Percent encoded values are also recognized where allowed and will not be double
+ encoded.
+ </p>
+
+ <p>
+ URI templates are allowed in most components of a URI but their value is restricted to a particular component. E.g.
+ <blockquote><code>UriBuilder.fromPath("{arg1}").build("foo#bar");</code></blockquote> would result in encoding of the
+ '#' such that the resulting URI is "foo%23bar". To create a URI "foo#bar" use
+ <blockquote><code>UriBuilder.fromPath("{arg1}").fragment("{arg2}").build("foo", "bar")</code></blockquote> instead.
+ URI template names and delimiters are never encoded but their values are encoded when a URI is built. Template
+ parameter regular expressions are ignored when building a URI, i.e. no validation is performed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>, 
+<a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code> methods to obtain an instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object%5B%5D,boolean)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+     boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromEncoded(java.lang.Object...)">buildFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromMap(java.util.Map)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromMap(java.util.Map,boolean)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+            boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fragment(java.lang.String)">fragment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block">Set the URI fragment.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a URI path.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a root resource class.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#host(java.lang.String)">host</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</code></th>
+<td class="colLast">
+<div class="block">Set the URI host.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of UriBuilder.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.Class)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated class to the existing path.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.Class,java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated method to the existing path.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.reflect.Method)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method to the existing path.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Append path to the existing path.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#port(int)">port</a></span>&#8203;(int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Set the URI port.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceMatrix(java.lang.String)">replaceMatrix</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</code></th>
+<td class="colLast">
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a matrix parameter on the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replacePath(java.lang.String)">replacePath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Set the URI path.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceQuery(java.lang.String)">replaceQuery</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Set the URI query string.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scheme(java.lang.String)">scheme</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemeSpecificPart(java.lang.String)">schemeSpecificPart</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#segment(java.lang.String...)">segment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</code></th>
+<td class="colLast">
+<div class="block">Append path segments to the existing path.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toTemplate()">toTemplate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI template string represented by this URI builder.</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing any existing values for those
+ components.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#userInfo(java.lang.String)">userInfo</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</code></th>
+<td class="colLast">
+<div class="block">Set the URI user-info.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriBuilder</h4>
+<pre>protected&nbsp;UriBuilder()</pre>
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code> methods to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Creates a new instance of UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new instance of UriBuilder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>3.0</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the UriBuilder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</pre>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may contain URI parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>uriTemplate</code> is not a valid URI template or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromLink(jakarta.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromLink</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromLink&#8203;(<a href="Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Create a new instance initialized from a Link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - a Link that will be used to initialize the UriBuilder, only its URI is used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if link is <code>null</code></dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="fromPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromPath</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)
+                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance representing a relative URI initialized from a URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - a URI path that will be used to initialize the UriBuilder, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResource</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</pre>
+<div class="block">Create a new instance representing a relative URI initialized from a root resource class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a root resource whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to initialize the UriBuilder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is not annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> or resource is
+ <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromMethod(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromMethod</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fromMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Create a new instance representing a relative URI initialized from a <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method.
+
+ This method can only be used in cases where there is a single method with the specified name that is annotated with
+ <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>, or there is more than or less than one
+ variant of the method annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;clone()</pre>
+<div class="block">Create a copy of the UriBuilder preserving its state. This is a more efficient means of creating a copy than
+ constructing a new UriBuilder from a URI returned by the <a href="#build(java.lang.Object...)"><code>build(Object...)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a copy of the UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing any existing values for those
+ components.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the URI to copy components from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the <code>uri</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</pre>
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may contain URI parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>uriTemplate</code> is not a valid URI template or is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="scheme(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scheme</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;scheme&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</pre>
+<div class="block">Set the URI scheme.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme, may contain URI template parameters. A <code>null</code> value will unset the URI scheme,
+ but will not unset the any scheme-specific-part components.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if scheme is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="schemeSpecificPart(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>schemeSpecificPart</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;schemeSpecificPart&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</pre>
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>). This method will overwrite any existing values for
+ authority, user-info, host, port and path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ssp</code> - the URI scheme-specific-part, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if ssp cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="userInfo(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>userInfo</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;userInfo&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</pre>
+<div class="block">Set the URI user-info.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ui</code> - the URI user-info, may contain URI template parameters. A <code>null</code> value will unset userInfo component
+ of the URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="host(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>host</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;host&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</pre>
+<div class="block">Set the URI host.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>host</code> - the URI host, may contain URI template parameters. A <code>null</code> value will unset the host component of
+ the URI, but will not unset other authority component parts (<a href="#userInfo(java.lang.String)"><code>user info</code></a> or <a href="#port(int)"><code>port</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if host is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="port(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;port&#8203;(int&nbsp;port)</pre>
+<div class="block">Set the URI port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>port</code> - the URI port, a value of -1 will unset an explicit port.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if port is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="replacePath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replacePath</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;replacePath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Set the URI path. This method will overwrite any existing path and associated matrix parameters. Existing '/'
+ characters are preserved thus a single value can represent multiple URI path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters. A <code>null</code> value will unset the path component of the
+ URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Append path to the existing path. When constructing the final path, a '/' separator will be inserted between the
+ existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can
+ represent multiple URI path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</pre>
+<div class="block">Append the path from a Path-annotated class to the existing path. When constructing the final path, a '/' separator
+ will be inserted between the existing path and the supplied path if necessary.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a resource whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is <code>null</code>, or if resource is not annotated with
+ <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Append the path from a Path-annotated method to the existing path. When constructing the final path, a '/' separator
+ will be inserted between the existing path and the supplied path if necessary. This method is a convenience shortcut
+ to <code>path(Method)</code>, it can only be used in cases where there is a single method with the specified name that is
+ annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>, or there is more than or less than one
+ variant of the method annotated with <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</pre>
+<div class="block">Append the path from a <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method to the existing path. When constructing the final
+ path, a '/' separator will be inserted between the existing path and the supplied path if necessary.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - a method whose <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a> value will be used to obtain the path to append to the existing
+ path.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if method is <code>null</code> or is not annotated with a <a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="segment(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>segment</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;segment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</pre>
+<div class="block">Append path segments to the existing path. When constructing the final path, a '/' separator will be inserted between
+ the existing path and the first path segment if necessary and each supplied segment will also be separated by '/'.
+ Existing '/' characters are encoded thus a single value can only represent a single URI path segment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>segments</code> - the path segment values, each may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if segments or any element of segments is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceMatrix(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceMatrix</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrix&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</pre>
+<div class="block">Set the matrix parameters of the current final segment of the current URI path. This method will overwrite any
+ existing matrix parameters on the current final segment of the current URI path. Note that the matrix parameters are
+ tied to a particular path segment; subsequent addition of path segments will not affect their position in the URI
+ path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>matrix</code> - the matrix parameters, may contain URI template parameters. A <code>null</code> value will remove all matrix
+ parameters of the current final segment of the current URI path.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if matrix cannot be parsed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="matrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>matrixParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;matrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path. If
+ multiple values are supplied the parameter will be added once per value. Note that the matrix parameters are tied to
+ a particular path segment; subsequent addition of path segments will not affect their position in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted. to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name or values is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="replaceMatrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceMatrixParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Replace the existing value(s) of a matrix parameter on the current final segment of the URI path. If multiple values
+ are supplied the parameter will be added once per value. Note that the matrix parameters are tied to a particular
+ path segment; subsequent addition of path segments will not affect their position in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted. to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters. If <code>values</code> is empty or
+ <code>null</code> then all current values of the parameter are removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="replaceQuery(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceQuery</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;replaceQuery&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</pre>
+<div class="block">Set the URI query string. This method will overwrite any existing query parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>query</code> - the URI query string, may contain URI template parameters. A <code>null</code> value will remove all query
+ parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if query cannot be parsed.</dd>
+</dl>
+</li>
+</ul>
+<a id="queryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queryParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;queryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Append a query parameter to the existing set of query parameters. If multiple values are supplied the parameter will
+ be added once per value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name or values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceQueryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceQueryParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;replaceQueryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Replace the existing value(s) of a query parameter. If multiple values are supplied the parameter will be added once
+ per value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted to a <code>String</code> using its
+ <code>toString()</code> method. Stringified values may contain URI template parameters. If <code>values</code> is empty or
+ <code>null</code> then all current values of the parameter are removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fragment(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fragment</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;fragment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</pre>
+<div class="block">Set the URI fragment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fragment</code> - the URI fragment, may contain URI template parameters. A <code>null</code> value will remove any existing
+ fragment.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a> is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+                                           boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a> is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplateFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplateFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value. Value is converted to <code>String</code> using
+ its <code>toString()</code> method and is then encoded to match the rules of the URI component to which they pertain. All
+ % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a <code>null</code> template name or encoded value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a> is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - encoded value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or encoded value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                                            boolean&nbsp;encodeSlashInPath)
+                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplatesFromEncoded(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplatesFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplatesFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.
+
+ All templates with their name matching one of the keys in the supplied map will be replaced by the value in the
+ supplied map. Values are converted to <code>String</code> using their <code>toString()</code> method and are then encoded to
+ match the rules of the URI component to which they pertain. All % characters in the stringified values that are not
+ followed by two hexadecimal numbers will be encoded.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromMap(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to <code>String</code>
+ using their <code>toString()</code> method and are then encoded to match the rules of the URI component to which they
+ pertain. All <code>'%'</code> characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+ <p>
+ NOTE: By default all <code>'/'</code> characters in the stringified values will be encoded in path templates, i.e. the
+ result is identical to invoking <a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(valueMap, true)</code></a>. To
+ override this behavior use <code>buildFromMap(valueMap, false)</code> instead.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(java.util.Map, boolean)</code></a>, 
+<a href="#buildFromEncodedMap(java.util.Map)"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromMap(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+                                 boolean&nbsp;encodeSlashInPath)
+                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                 <a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to <code>String</code>
+ using their <code>toString()</code> method and are then encoded to match the rules of the URI component to which they
+ pertain. All <code>'%'</code> characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+ <p>
+ The <code>encodeSlashInPath</code> parameter may be used to override the default encoding of <code>'/'</code> characters in the
+ stringified template values in cases when the template is part of the URI path component when using the
+ <a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a> method. If the <code>encodeSlashInPath</code> parameter is set to <code>true</code>
+ (default), the slash (<code>'/'</code>) characters in parameter values will be encoded if the template is placed in the
+ URI path component. If set to <code>false</code> the default encoding behavior is overridden an slash characters in
+ template values will not be encoded when used to substitute path templates.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in parameter values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a>, 
+<a href="#buildFromEncodedMap(java.util.Map)"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromEncodedMap(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromEncodedMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromEncodedMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)
+                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                        <a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to <code>String</code>
+ using their <code>toString()</code> method and are then encoded to match the rules of the URI component to which they
+ pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+ The state of the builder is unaffected; this method may be called multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a>, 
+<a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(java.util.Map, boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                          <a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to
+ <code>String</code> using their <code>toString()</code> method and are then encoded to match the rules of the URI component to
+ which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+ <p>
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", <i>not</i> "x/y/z".
+ </p>
+ <p>
+ NOTE: By default all <code>'/'</code> characters in the stringified values will be encoded in path templates, i.e. the
+ result is identical to invoking <a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a> build(values, true)}. To override this behavior use
+ <code>build(values, false)</code> instead.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a value is
+ <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a>, 
+<a href="#buildFromEncoded(java.lang.Object...)"><code>buildFromEncoded(Object...)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object[],boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+                          boolean&nbsp;encodeSlashInPath)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                          <a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to
+ <code>String</code> using their <code>toString()</code> method and are then encoded to match the rules of the URI component to
+ which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+ <p>
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", <i>not</i> "x/y/z".
+ </p>
+ <p>
+ The <code>encodeSlashInPath</code> parameter may be used to override the default encoding of <code>'/'</code> characters in the
+ stringified template values in cases when the template is part of the URI path component when using the
+ <a href="#build(java.lang.Object...)"><code>build(Object[])</code></a> method. If the <code>encodeSlashInPath</code> parameter is set to <code>true</code> (default), the
+ slash (<code>'/'</code>) characters in parameter values will be encoded if the template is placed in the URI path
+ component. If set to <code>false</code> the default encoding behavior is overridden an slash characters in template values
+ will not be encoded when used to substitute path templates.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters in parameter values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a value is
+ <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object...)"><code>build(Object[])</code></a>, 
+<a href="#buildFromEncoded(java.lang.Object...)"><code>buildFromEncoded(Object...)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromEncoded(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                     <a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI. Any URI templates parameters will be replaced with the supplied values in order. Values are converted to
+ <code>String</code> using their <code>toString()</code> method and are then encoded to match the rules of the URI component to
+ which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will
+ be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder
+ instance.
+ <p>
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", <i>not</i> "x/y/z".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters without a supplied value, or if a value is
+ <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object...)"><code>build(Object[])</code></a>, 
+<a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toTemplate()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toTemplate()</pre>
+<div class="block">Get the URI template string represented by this URI builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI template string for this URI builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilderException.html b/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilderException.html
new file mode 100644
index 0000000..ffd0934
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/UriBuilderException.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>UriBuilderException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriBuilderException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilderException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class UriBuilderException" class="title">Class UriBuilderException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.UriBuilderException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">UriBuilderException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be
+ constructed based on the current state of the builder.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#jakarta.ws.rs.core.UriBuilderException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UriBuilderException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</code></th>
+<td class="colLast">
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new exception with the specified cause and a detail message of
+ (<code>cause==null ? null : cause.toString()</code>) (which typically contains the class and detail message of
+ cause).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException()</pre>
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</pre>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>msg</code> - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.
+ <p>
+ Note that the detail message associated with cause is not automatically incorporated in this exception's detail
+ message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>msg</code> - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value is
+ permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new exception with the specified cause and a detail message of
+ (<code>cause==null ? null : cause.toString()</code>) (which typically contains the class and detail message of
+ cause). This constructor is useful for exceptions that are little more than wrappers for other throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the original exception</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilderException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/UriInfo.html b/apidocs/3.0.0/jakarta/ws/rs/core/UriInfo.html
new file mode 100644
index 0000000..4bc3538
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/UriInfo.html
@@ -0,0 +1,856 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>UriInfo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriInfo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Interface UriInfo" class="title">Interface UriInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">UriInfo</span></pre>
+<div class="block">An injectable interface that provides access to application and request URI information. Relative URIs are relative
+ to the base URI of the application, see <a href="#getBaseUri()"><code>getBaseUri()</code></a>.
+
+ <p>
+ All methods throw <code>java.lang.IllegalStateException</code> if called outside the scope of a request (e.g. from a
+ provider constructor).
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAbsolutePath()">getAbsolutePath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAbsolutePathBuilder()">getAbsolutePathBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBaseUri()">getBaseUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBaseUriBuilder()">getBaseUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedResources()">getMatchedResources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of the currently matched resource class instances.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedURIs()">getMatchedURIs</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedURIs(boolean)">getMatchedURIs</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath(boolean)">getPath</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters(boolean)">getPathParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathSegments()">getPathSegments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathSegments(boolean)">getPathSegments</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryParameters()">getQueryParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryParameters(boolean)">getQueryParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUri()">getRequestUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI including any query parameters.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUriBuilder()">getRequestUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#relativize(java.net.URI)">relativize</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Relativize a URI with respect to the current request URI.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolve(java.net.URI)">resolve</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Resolve a relative URI with respect to the base URI of the application.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path of the current request relative to the base URI as a string. All sequences of escaped octets are
+ decoded, equivalent to <a href="#getPath(boolean)"><code>getPath(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the relative URI path.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPath(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the relative URI path</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathSegments()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathSegments</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;&nbsp;getPathSegments()</pre>
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>. This method is useful
+ when the path needs to be parsed, particularly when matrix parameters may be present in the path. All sequences of
+ escaped octets in path segments and matrix parameter values are decoded, equivalent to <code>getPathSegments(true)</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>. The matrix parameter map of each path segment is also
+ unmodifiable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPathSegments(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathSegments</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;&nbsp;getPathSegments&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>. This method is useful
+ when the path needs to be parsed, particularly when matrix parameters may be present in the path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets in path segments and matrix parameter values are decoded
+ (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable list of <a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>. The matrix parameter map of each path segment is also
+ unmodifiable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getRequestUri()</pre>
+<div class="block">Get the absolute request URI including any query parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the absolute request URI</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUriBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;getRequestUriBuilder()</pre>
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the absolute request URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAbsolutePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbsolutePath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getAbsolutePath()</pre>
+<div class="block">Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query
+ parameters. This is a shortcut for <code>uriInfo.getBaseUri().resolve(uriInfo.getPath(false))</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the absolute path of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAbsolutePathBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbsolutePathBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;getAbsolutePathBuilder()</pre>
+<div class="block">Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host,
+ port etc) but excludes query parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the absolute path of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBaseUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBaseUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getBaseUri()</pre>
+<div class="block">Get the base URI of the application. URIs of root resource classes are all relative to this base URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the base URI of the application.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBaseUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBaseUriBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;getBaseUriBuilder()</pre>
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the base URI of the application.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPathParameters()</pre>
+<div class="block">Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to
+ <a href="#getPathParameters(boolean)"><code>getPathParameters(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>, 
+<a href="../PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPathParameters&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of parameter names and values</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>, 
+<a href="../PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getQueryParameters()</pre>
+<div class="block">Get the URI query parameters of the current request. The map keys are the names of the query parameters with any
+ escaped characters decoded. All sequences of escaped octets in parameter names and values are decoded, equivalent to
+ <a href="#getQueryParameters(boolean)"><code>getQueryParameters(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of query parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryParameters(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getQueryParameters&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the URI query parameters of the current request. The map keys are the names of the query parameters with any
+ escaped characters decoded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets in parameter names and values are decoded (<code>true</code>)
+ or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of query parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedURIs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedURIs</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMatchedURIs()</pre>
+<div class="block">Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All
+ sequences of escaped octets are decoded, equivalent to <code>getMatchedURIs(true)</code>. Entries do not include query
+ parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI
+ matching order, with the current resource URI first. E.g. given the following resource classes:
+
+ <pre>
+ &#064;Path("foo")
+ public class FooResource {
+  &#064;GET
+  public String getFoo() {...}
+
+  &#064;Path("bar")
+  public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+  &#064;GET
+  public String getBar() {...}
+ }
+ </pre>
+
+ <p>
+ The values returned by this method based on request uri and where the method is called from are:
+ </p>
+
+ <table border="1">
+ <caption>Matched URIs from requests</caption>
+ <tr>
+ <th>Request</th>
+ <th>Called from</th>
+ <th>Value(s)</th>
+ </tr>
+ <tr>
+ <td>GET /foo</td>
+ <td>FooResource.getFoo</td>
+ <td>foo</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>FooResource.getBarResource</td>
+ <td>foo/bar, foo</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>BarResource.getBar</td>
+ <td>foo/bar, foo</td>
+ </tr>
+ </table>
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of URI paths for matched resources.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedURIs(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedURIs</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMatchedURIs&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. Entries
+ do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered
+ in reverse request URI matching order, with the current resource URI first. See <a href="#getMatchedURIs()"><code>getMatchedURIs()</code></a> for an
+ example.
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of URI paths for matched resources.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedResources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedResources</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getMatchedResources()</pre>
+<div class="block">Get a read-only list of the currently matched resource class instances.
+
+ Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or
+ a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current
+ resource first. E.g. given the following resource classes:
+
+ <pre>
+ &#064;Path("foo")
+ public class FooResource {
+  &#064;GET
+  public String getFoo() {...}
+
+  &#064;Path("bar")
+  public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+  &#064;GET
+  public String getBar() {...}
+ }
+ </pre>
+
+ <p>
+ The values returned by this method based on request uri and where the method is called from are:
+ </p>
+
+ <table border="1">
+ <caption>Matched resources from requests</caption>
+ <tr>
+ <th>Request</th>
+ <th>Called from</th>
+ <th>Value(s)</th>
+ </tr>
+ <tr>
+ <td>GET /foo</td>
+ <td>FooResource.getFoo</td>
+ <td>FooResource</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>FooResource.getBarResource</td>
+ <td>FooResource</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>BarResource.getBar</td>
+ <td>BarResource, FooResource</td>
+ </tr>
+ </table>
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of matched resource class instances.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolve(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolve</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;resolve&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Resolve a relative URI with respect to the base URI of the application. The resolved URI returned by this method is
+ normalized. If the supplied URI is already resolved, it is just returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI to resolve against the base URI of the application.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly resolved URI or supplied URI if already resolved.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="relativize(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>relativize</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;relativize&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Relativize a URI with respect to the current request URI. Relativization works as follows:
+ <ol>
+ <li>If the URI to relativize is already relative, it is first resolved using <a href="#resolve(java.net.URI)"><code>resolve(java.net.URI)</code></a>.</li>
+ <li>The resulting URI is relativized with respect to the current request URI. If the two URIs do not share a prefix,
+ the URI computed in step 1 is returned.</li>
+ </ol>
+
+ <p>
+ Examples (for base URI <code>http://example.com:8080/app/root/</code>): <br>
+ <br>
+ <b>Request URI:</b> <code>http://example.com:8080/app/root/a/b/c/resource.html</code> <br>
+ <b>Supplied URI:</b> <code>a/b/c/d/file.txt</code> <br>
+ <b>Returned URI:</b> <code>d/file.txt</code> <br>
+ <br>
+ <b>Request URI:</b> <code>http://example.com:8080/app/root/a/b/c/resource.html</code> <br>
+ <b>Supplied URI:</b> <code>http://example2.com:9090/app2/root2/a/d/file.txt</code> <br>
+ <b>Returned URI:</b> <code>http://example2.com:9090/app2/root2/a/d/file.txt</code>
+ </p>
+
+ <p>
+ In the second example, the supplied URI is returned given that it is absolute and there is no common prefix between
+ it and the request URI.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI to relativize against the request URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly relativized URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Variant.VariantListBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/Variant.VariantListBuilder.html
new file mode 100644
index 0000000..78755ff
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Variant.VariantListBuilder.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Variant.VariantListBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Variant.VariantListBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.VariantListBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Variant.VariantListBuilder" class="title">Class Variant.VariantListBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Variant.VariantListBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">Variant.VariantListBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A builder for a list of representation variants.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">VariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use the static <code>newInstance</code> method to obtain an instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add()">add</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Set the encoding(s) for this variant.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Set the language(s) for this variant.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>VariantListBuilder</h4>
+<pre>protected&nbsp;VariantListBuilder()</pre>
+<div class="block">Protected constructor, use the static <code>newInstance</code> method to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Create a new builder instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;build()</pre>
+<div class="block">Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder. After this
+ method is called the builder is reset to an empty state.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a list of representation variants.</dd>
+</dl>
+</li>
+</ul>
+<a id="add()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;add()</pre>
+<div class="block">Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.
+ <p>
+ If more than one value is supplied for one or more of the variant properties then a variant will be generated for
+ each possible combination. E.g. in the following <code>list</code> would have five (4 + 1) members:
+ </p>
+
+ <pre>
+ List&lt;Variant&gt; list = VariantListBuilder.newInstance()
+         .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add()
+         .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE).add()
+         .build()
+ </pre>
+ <p>
+ Note that it is not necessary to call the <code>add()</code> method immediately before the build method is called. E.g.
+ the resulting list produced in the example above would be identical to the list produced by the following code:
+ </p>
+
+ <pre>
+ List&lt;Variant&gt; list = VariantListBuilder.newInstance()
+         .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add()
+         .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE)
+         .build()
+ </pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if there is not at least one mediaType, language or encoding set for the current
+ variant.</dd>
+</dl>
+</li>
+</ul>
+<a id="languages(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>languages</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;languages&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</pre>
+<div class="block">Set the language(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>languages</code> - the available languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodings(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encodings</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;encodings&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Set the encoding(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - the available encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaTypes(jakarta.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>mediaTypes</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;mediaTypes&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Set the media type(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - the available mediaTypes. If specific charsets are supported they should be included as parameters
+ of the respective media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.VariantListBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/Variant.html b/apidocs/3.0.0/jakarta/ws/rs/core/Variant.html
new file mode 100644
index 0000000..8430689
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/Variant.html
@@ -0,0 +1,673 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Variant (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Variant (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.core</a></div>
+<h2 title="Class Variant" class="title">Class Variant</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.core.Variant</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Variant</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Abstraction for a resource representation variant.
+
+ Contains information about media type, language and encoding of the resource representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported encodings.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares obj to this variant to see if they are the same considering all property values.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEncoding()">getEncoding</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the encoding of the variant.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the variant.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguageString()">getLanguageString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the string representation of the variant language, or <code>null</code> if no language has been set.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the variant.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hash code from variant properties.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported languages.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported media types.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code); may be <code>null</code>.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code); may be <code>null</code>.</dd>
+<dd><code>country</code> - uppercase two-letter ISO-3166 language code of the variant; may be <code>null</code> provided
+ <code>language</code> is <code>null</code> too.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code); may be <code>null</code>.</dd>
+<dd><code>country</code> - uppercase two-letter ISO-3166 language code of the variant; may be <code>null</code> provided
+ <code>language</code> is <code>null</code> too.</dd>
+<dd><code>languageVariant</code> - vendor and browser specific language code of the variant (see also <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Locale</code></a> class
+ description); may be <code>null</code> provided <code>language</code> and <code>country</code> are <code>null</code> too.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant - may be <code>null</code>.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language or <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguageString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguageString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getLanguageString()</pre>
+<div class="block">Get the string representation of the variant language, or <code>null</code> if no language has been set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string representing variant language or <code>null</code> if none set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public&nbsp;<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEncoding()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEncoding</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getEncoding()</pre>
+<div class="block">Get the encoding of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoding or <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaTypes(jakarta.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mediaTypes</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;mediaTypes&#8203;(<a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - the available mediaTypes. If specific char-sets are supported they should be included as parameters
+ of the respective media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if mediaTypes is null or contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="languages(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>languages</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;languages&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>languages</code> - the available languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if languages is null or contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodings(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encodings</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;encodings&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported encodings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - the available encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if encodings is null or contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hash code from variant properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares obj to this variant to see if they are the same considering all property values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two variants are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/AbstractMultivaluedMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/AbstractMultivaluedMap.html
new file mode 100644
index 0000000..cdc518f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/AbstractMultivaluedMap.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.AbstractMultivaluedMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.AbstractMultivaluedMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.AbstractMultivaluedMap" class="title">Uses of Class<br>jakarta.ws.rs.core.AbstractMultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Application.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Application.html
new file mode 100644
index 0000000..2c47a55
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Application.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Application (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Application (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Application" class="title">Uses of Class<br>jakarta.ws.rs.core.Application</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Application.html" title="class in jakarta.ws.rs.core">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Application.html" title="class in jakarta.ws.rs.core">Application</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../Application.html" title="class in jakarta.ws.rs.core">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)">createEndpoint</a></span>&#8203;(<a href="../Application.html" title="class in jakarta.ws.rs.core">Application</a>&nbsp;application,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)</code></th>
+<td class="colLast">
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/CacheControl.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/CacheControl.html
new file mode 100644
index 0000000..055b95c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/CacheControl.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.CacheControl (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.CacheControl (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CacheControl.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.CacheControl" class="title">Uses of Class<br>jakarta.ws.rs.core.CacheControl</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CacheControl.</span><code><span class="memberNameLink"><a href="../CacheControl.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CacheControl.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configurable.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configurable.html
new file mode 100644
index 0000000..586f5d2
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configurable.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Configurable (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Configurable (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Configurable" class="title">Uses of Interface<br>jakarta.ws.rs.core.Configurable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></span></code></th>
+<td class="colLast">
+<div class="block">
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></span></code></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that implement <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="../../client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instances.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">jakarta.ws.rs.core</a> with type parameters of type <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;C extends <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></span></code></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="../Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="../../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configurable.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configuration.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configuration.html
new file mode 100644
index 0000000..d7c13eb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Configuration.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Configuration (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Configuration (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Configuration" class="title">Uses of Interface<br>jakarta.ws.rs.core.Configuration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable configuration of the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Client.html" title="interface in jakarta.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html#newClient(jakarta.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="../../client/Client.html" title="interface in jakarta.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation class provided
+ by the JAX-RS implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../client/ClientBuilder.html" title="class in jakarta.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html#withConfig(jakarta.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configurable.</span><code><span class="memberNameLink"><a href="../Configurable.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configuration.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Context.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Context.html
new file mode 100644
index 0000000..e358c17
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Context.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Context (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Context (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Context.html" title="annotation in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Context" class="title">Uses of Class<br>jakarta.ws.rs.core.Context</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.Context</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Context.html" title="annotation in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Cookie.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Cookie.html
new file mode 100644
index 0000000..a62ed54
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Cookie.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Cookie (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Cookie (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Cookie.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Cookie" class="title">Uses of Class<br>jakarta.ws.rs.core.Cookie</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#cookie(jakarta.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return types with arguments of type <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span></code></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NewCookie.</span><code><span class="memberNameLink"><a href="../NewCookie.html#toCookie()">toCookie</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a <a href="../Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a> with the same name, value, path, domain and version as this
+ <code>NewCookie</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Cookie.</span><code><span class="memberNameLink"><a href="../Cookie.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Cookie.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/EntityTag.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/EntityTag.html
new file mode 100644
index 0000000..cbc3f31
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/EntityTag.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.EntityTag (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.EntityTag (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EntityTag.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.EntityTag" class="title">Uses of Class<br>jakarta.ws.rs.core.EntityTag</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EntityTag.</span><code><span class="memberNameLink"><a href="../EntityTag.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(jakarta.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(jakarta.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EntityTag.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Feature.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Feature.html
new file mode 100644
index 0000000..9257d9c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Feature.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Feature (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Feature (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Feature.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Feature" class="title">Uses of Interface<br>jakarta.ws.rs.core.Feature</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#isEnabled(jakarta.ws.rs.core.Feature)">isEnabled</a></span>&#8203;(<a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&nbsp;feature)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular <a href="../Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance has been previously enabled in the runtime configuration
+ context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">jakarta.ws.rs.core</a> with type arguments of type <a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#isEnabled(java.lang.Class)">isEnabled</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="../Feature.html" title="interface in jakarta.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a <a href="../Feature.html" title="interface in jakarta.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been previously enabled in the runtime
+ configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Feature.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/FeatureContext.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/FeatureContext.html
new file mode 100644
index 0000000..ce5e4be
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/FeatureContext.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.FeatureContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.FeatureContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.FeatureContext" class="title">Uses of Interface<br>jakarta.ws.rs.core.FeatureContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DynamicFeature.</span><code><span class="memberNameLink"><a href="../../container/DynamicFeature.html#configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../../container/ResourceInfo.html" title="interface in jakarta.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a <a href="../Configuration.html" title="interface in jakarta.ws.rs.core"><code>runtime configuration</code></a> scope of a particular
+ <a href="../../HttpMethod.html" title="annotation in jakarta.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Feature.</span><code><span class="memberNameLink"><a href="../Feature.html#configure(jakarta.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A call-back method called when the feature is to be enabled in a given runtime configuration scope.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FeatureContext.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Form.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Form.html
new file mode 100644
index 0000000..fccf74c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Form.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Form (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Form (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Form.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Form" class="title">Uses of Class<br>jakarta.ws.rs.core.Form</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(jakarta.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(jakarta.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(jakarta.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../Form.html#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new value to the specified form parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Form.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericEntity.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericEntity.html
new file mode 100644
index 0000000..9eb3d41
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericEntity.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.GenericEntity (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.GenericEntity (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericEntity.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.GenericEntity" class="title">Uses of Class<br>jakarta.ws.rs.core.GenericEntity</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.GenericEntity</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericEntity.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericType.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericType.html
new file mode 100644
index 0000000..8d5ea24
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/GenericType.html
@@ -0,0 +1,536 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.GenericType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.GenericType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericType.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.GenericType" class="title">Uses of Class<br>jakarta.ws.rs.core.GenericType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#delete(jakarta.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#get(jakarta.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#invoke(jakarta.ws.rs.core.GenericType)">invoke</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified generic type back.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#options(jakarta.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#submit(jakarta.ws.rs.core.GenericType)">submit</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#trace(jakarta.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GenericType.</span><code><span class="memberNameLink"><a href="../GenericType.html#forInstance(java.lang.Object)">forInstance</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../GenericType.html" title="class in jakarta.ws.rs.core"><code>generic type</code></a> from a Java <code>instance</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#readEntity(jakarta.ws.rs.core.GenericType)">readEntity</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type using a
+ <a href="../../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the message entity stream onto the requested type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a> in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a> with parameters of type <a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.Builder.html#data(jakarta.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(jakarta.ws.rs.core.GenericType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericType.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/HttpHeaders.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/HttpHeaders.html
new file mode 100644
index 0000000..748a380
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/HttpHeaders.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.HttpHeaders (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.HttpHeaders (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpHeaders.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.HttpHeaders" class="title">Uses of Interface<br>jakarta.ws.rs.core.HttpHeaders</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.HttpHeaders</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpHeaders.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.Builder.html
new file mode 100644
index 0000000..65eba70
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.Builder.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Link.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Link.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Link.Builder" class="title">Uses of Interface<br>jakarta.ws.rs.core.Link.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#baseUri(java.lang.String)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#baseUri(java.net.URI)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUriBuilder(jakarta.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(jakarta.ws.rs.core.Link)">link</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link represented as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set an arbitrary parameter on this link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#rel(java.lang.String)">rel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a link relation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#title(java.lang.String)">title</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uriBuilder(jakarta.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createLinkBuilder()">createLinkBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbAdapter.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbAdapter.html
new file mode 100644
index 0000000..78b08eb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbAdapter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Link.JaxbAdapter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Link.JaxbAdapter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Link.JaxbAdapter" class="title">Uses of Class<br>jakarta.ws.rs.core.Link.JaxbAdapter</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.Link.JaxbAdapter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbLink.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbLink.html
new file mode 100644
index 0000000..40b546b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.JaxbLink.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Link.JaxbLink (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Link.JaxbLink (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Link.JaxbLink" class="title">Uses of Class<br>jakarta.ws.rs.core.Link.JaxbLink</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#marshal(jakarta.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> into a <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#unmarshal(jakarta.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="../Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.html
new file mode 100644
index 0000000..ac86adf
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Link.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Link (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Link (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Link" class="title">Uses of Class<br>jakarta.ws.rs.core.Link</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#invocation(jakarta.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">
+ Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#target(jakarta.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return types with arguments of type <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters and relativize the result with respect to the
+ supplied URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#unmarshal(jakarta.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="../Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(jakarta.ws.rs.core.Link)">link</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#links(jakarta.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#marshal(jakarta.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> into a <a href="../Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MediaType.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MediaType.html
new file mode 100644
index 0000000..a2887ac
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MediaType.html
@@ -0,0 +1,822 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.MediaType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.MediaType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MediaType.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.MediaType" class="title">Uses of Class<br>jakarta.ws.rs.core.MediaType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#accept(jakarta.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,jakarta.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../../client/WebTarget.html#request(jakarta.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return types with arguments of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">jakarta.ws.rs.core</a> declared as <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_JSON">"application/json"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_XML">"application/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Server sent events media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_HTML">"text/html"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_XML">"text/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#WILDCARD_TYPE">WILDCARD_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="../MediaType.html#WILDCARD">"*/*"</a> media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the request entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the message entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#withCharset(java.lang.String)">withCharset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters copied from the original instance
+ and the supplied <a href="../MediaType.html#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#isCompatible(jakarta.ws.rs.core.MediaType)">isCompatible</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;other)</code></th>
+<td class="colLast">
+<div class="block">Check if this media type is compatible with another media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,jakarta.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(jakarta.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/InterceptorContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get media type of HTTP entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default long</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getSize</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of the serialized form
+ of <code>t</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isReadable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+          <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a particular type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isWriteable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/InterceptorContext.html#setMediaType(jakarta.ws.rs.core.MediaType)">setMediaType</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Update media type of HTTP entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a> in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../sse/package-summary.html">jakarta.ws.rs.sse</a> with parameters of type <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.Builder.html#mediaType(jakarta.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(java.lang.Class,jakarta.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+        <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MediaType.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedHashMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedHashMap.html
new file mode 100644
index 0000000..92226b9
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedHashMap.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.MultivaluedHashMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.MultivaluedHashMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.MultivaluedHashMap" class="title">Uses of Class<br>jakarta.ws.rs.core.MultivaluedHashMap</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.MultivaluedHashMap</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedMap.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedMap.html
new file mode 100644
index 0000000..1f16764
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/MultivaluedMap.html
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.MultivaluedMap (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.MultivaluedMap (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.MultivaluedMap" class="title">Uses of Interface<br>jakarta.ws.rs.core.MultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in jakarta.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(jakarta.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#headers(jakarta.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">jakarta.ws.rs.core</a> that implement <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../Form.html#asMap()">asMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns multivalued map representation of the form.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their object values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathSegment.</span><code><span class="memberNameLink"><a href="../PathSegment.html#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getMetadata()">getMetadata</a></span>()</code></th>
+<td class="colLast">
+<div class="block">See <a href="../Response.html#getHeaders()"><code>Response.getHeaders()</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathParameters(boolean)">getPathParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getQueryParameters()">getQueryParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getQueryParameters(boolean)">getQueryParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getRequestHeaders()">getRequestHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of HTTP request headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their string values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMultivaluedMap.</span><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MultivaluedMap.</span><code><span class="memberNameLink"><a href="../MultivaluedMap.html#equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order of values for each key.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#replaceAll(jakarta.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Form.html#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">Form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html#%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the specified <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/ReaderInterceptorContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/WriterInterceptorContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NewCookie.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NewCookie.html
new file mode 100644
index 0000000..ea53055
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NewCookie.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.NewCookie (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.NewCookie (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NewCookie.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.NewCookie" class="title">Uses of Class<br>jakarta.ws.rs.core.NewCookie</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return types with arguments of type <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NewCookie.</span><code><span class="memberNameLink"><a href="../NewCookie.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">This method will be removed in a future version.</div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cookie(jakarta.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NewCookie.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NoContentException.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NoContentException.html
new file mode 100644
index 0000000..c2a5f1f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/NoContentException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.NoContentException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.NoContentException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoContentException.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.NoContentException" class="title">Uses of Class<br>jakarta.ws.rs.core.NoContentException</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.NoContentException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoContentException.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/PathSegment.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/PathSegment.html
new file mode 100644
index 0000000..3d6edf1
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/PathSegment.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.PathSegment (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.PathSegment (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.PathSegment" class="title">Uses of Interface<br>jakarta.ws.rs.core.PathSegment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathSegments()">getPathSegments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="../PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathSegments(boolean)">getPathSegments</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of <a href="../PathSegment.html" title="interface in jakarta.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Request.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Request.html
new file mode 100644
index 0000000..7e93d7f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Request.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Request (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Request (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Request.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Request" class="title">Uses of Interface<br>jakarta.ws.rs.core.Request</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Request.html" title="interface in jakarta.ws.rs.core">Request</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Request.html" title="interface in jakarta.ws.rs.core">Request</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../Request.html" title="interface in jakarta.ws.rs.core">Request</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Request.html" title="interface in jakarta.ws.rs.core">Request</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable request information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Request.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.ResponseBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.ResponseBuilder.html
new file mode 100644
index 0000000..0ba7874
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.ResponseBuilder.html
@@ -0,0 +1,624 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Response.ResponseBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Response.ResponseBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Response.ResponseBuilder" class="title">Uses of Class<br>jakarta.ws.rs.core.Response.ResponseBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#accepted()">accepted</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#accepted(java.lang.Object)">accepted</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#allow(java.lang.String...)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#allow(java.util.Set)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cacheControl(jakarta.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#clone()">clone</a></span>()</code></th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#contentLocation(java.net.URI)">contentLocation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the content location.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cookie(jakarta.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="../NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#created(java.net.URI)">created</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a created resource, set the location header using the supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#encoding(java.lang.String)">encoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity content encoding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#entity(java.lang.Object)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">
+ Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">
+ Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions()">evaluatePreconditions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions for a resource that does not currently exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#expires(java.util.Date)">expires</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</code></th>
+<td class="colLast">
+<div class="block">Set the response expiration date.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#fromResponse(jakarta.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an existing Response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#language(java.lang.String)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#language(java.util.Locale)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#lastModified(java.util.Date)">lastModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity last modification date.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#link(java.lang.String,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#link(java.net.URI,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#links(jakarta.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#location(java.net.URI)">location</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the location.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#noContent()">noContent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified()">notModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(jakarta.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(java.lang.String)">notModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status and a strong entity tag.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok()">ok</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,jakarta.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,jakarta.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,java.lang.String)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#replaceAll(jakarta.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#seeOther(java.net.URI)">seeOther</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#serverError()">serverError</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(jakarta.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="../EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(java.lang.String)">tag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">
+ Set a strong response entity tag.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#temporaryRedirect(java.net.URI)">temporaryRedirect</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(jakarta.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variant(jakarta.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">
+ Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(jakarta.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createResponseBuilder()">createResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.Family.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.Family.html
new file mode 100644
index 0000000..874e87f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.Family.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Response.Status.Family (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Response.Status.Family (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Response.Status.Family" class="title">Uses of Class<br>jakarta.ws.rs.core.Response.Status.Family</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#familyOf(int)">familyOf</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Get the response status family for the status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.StatusType.</span><code><span class="memberNameLink"><a href="../Response.StatusType.html#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.html
new file mode 100644
index 0000000..2fed475
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.Status.html
@@ -0,0 +1,367 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Response.Status (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Response.Status (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Response.Status" class="title">Uses of Class<br>jakarta.ws.rs.core.Response.Status</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> in <a href="../../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../package-summary.html">jakarta.ws.rs</a> with parameters of type <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#fromStatusCode(int)">fromStatusCode</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.StatusType.</span><code><span class="memberNameLink"><a href="../Response.StatusType.html#toEnum()">toEnum</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the this Status Type as a <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core"><code>Response.Status</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(jakarta.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.StatusType.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.StatusType.html
new file mode 100644
index 0000000..09b30c4
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.StatusType.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.Response.StatusType (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.Response.StatusType (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.Response.StatusType" class="title">Uses of Interface<br>jakarta.ws.rs.core.Response.StatusType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#setStatusInfo(jakarta.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">jakarta.ws.rs.core</a> that implement <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></span></code></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(jakarta.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.StatusType.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.html
new file mode 100644
index 0000000..16a555f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Response.html
@@ -0,0 +1,968 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Response (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Response (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Response" class="title">Uses of Class<br>jakarta.ws.rs.core.Response</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a> in <a href="../../package-summary.html">jakarta.ws.rs</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">jakarta.ws.rs</a> that return <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebApplicationException.</span><code><span class="memberNameLink"><a href="../../WebApplicationException.html#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../package-summary.html">jakarta.ws.rs</a> with parameters of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ResponseProcessingException.</span><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#invoke()">invoke</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return types with arguments of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head(jakarta.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../../client/InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,jakarta.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#post(jakarta.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#put(jakarta.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#submit()">submit</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future response back.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#abortWith(jakarta.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with type arguments of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head(jakarta.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../../client/InvocationCallback.html" title="interface in jakarta.ws.rs.client">InvocationCallback</a>&lt;<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime processing exception with the specified detail message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">
+ Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new JAX-RS runtime response processing exception for a specific <a href="../Response.html" title="class in jakarta.ws.rs.core"><code>response</code></a> with the
+ specified cause and a detail message of <code>(cause==null ? null : cause.toString())</code> (which typically contains the
+ class and detail message of <code>cause</code>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#abortWith(jakarta.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#fromResponse(jakarta.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an existing Response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExceptionMapper.</span><code><span class="memberNameLink"><a href="../../ext/ExceptionMapper.html#toResponse(E)">toResponse</a></span>&#8203;(<a href="../../ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Map an exception to a <a href="../Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/SecurityContext.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/SecurityContext.html
new file mode 100644
index 0000000..51467b4
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/SecurityContext.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.SecurityContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.SecurityContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.SecurityContext" class="title">Uses of Interface<br>jakarta.ws.rs.core.SecurityContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getSecurityContext()">getSecurityContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable security context information for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> with parameters of type <a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#setSecurityContext(jakarta.ws.rs.core.SecurityContext)">setSecurityContext</a></span>&#8203;(<a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Set a new injectable security context information for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SecurityContext.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/StreamingOutput.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/StreamingOutput.html
new file mode 100644
index 0000000..cd04f15
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/StreamingOutput.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.StreamingOutput (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.StreamingOutput (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StreamingOutput.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.StreamingOutput" class="title">Uses of Interface<br>jakarta.ws.rs.core.StreamingOutput</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.core.StreamingOutput</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StreamingOutput.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilder.html
new file mode 100644
index 0000000..84eb2f8
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilder.html
@@ -0,0 +1,571 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.UriBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.UriBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.UriBuilder" class="title">Uses of Class<br>jakarta.ws.rs.core.UriBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../../client/WebTarget.html#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#target(jakarta.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#clone()">clone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fragment(java.lang.String)">fragment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block">Set the URI fragment.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromLink(jakarta.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in jakarta.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a <a href="../../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a root resource class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getAbsolutePathBuilder()">getAbsolutePathBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getBaseUriBuilder()">getBaseUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getRequestUriBuilder()">getRequestUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a> initialized with this link's underlying URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#host(java.lang.String)">host</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</code></th>
+<td class="colLast">
+<div class="block">Set the URI host.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.Class)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated class to the existing path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.Class,java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated method to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.reflect.Method)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a <a href="../../Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>-annotated method to the existing path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Append path to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#port(int)">port</a></span>&#8203;(int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Set the URI port.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceMatrix(java.lang.String)">replaceMatrix</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</code></th>
+<td class="colLast">
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a matrix parameter on the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replacePath(java.lang.String)">replacePath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Set the URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceQuery(java.lang.String)">replaceQuery</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Set the URI query string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#scheme(java.lang.String)">scheme</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#schemeSpecificPart(java.lang.String)">schemeSpecificPart</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#segment(java.lang.String...)">segment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</code></th>
+<td class="colLast">
+<div class="block">Append path segments to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing any existing values for those
+ components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#userInfo(java.lang.String)">userInfo</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</code></th>
+<td class="colLast">
+<div class="block">Set the URI user-info.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUriBuilder(jakarta.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uriBuilder(jakarta.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createUriBuilder()">createUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilderException.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilderException.html
new file mode 100644
index 0000000..639524e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriBuilderException.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.UriBuilderException (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.UriBuilderException (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilderException.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.UriBuilderException" class="title">Uses of Class<br>jakarta.ws.rs.core.UriBuilderException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that throw <a href="../UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#build(java.lang.Object%5B%5D,boolean)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+     boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI template parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromEncoded(java.lang.Object...)">buildFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromMap(java.util.Map,boolean)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+            boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilderException.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriInfo.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriInfo.html
new file mode 100644
index 0000000..d9f884f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/UriInfo.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.core.UriInfo (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.core.UriInfo (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.core.UriInfo" class="title">Uses of Interface<br>jakarta.ws.rs.core.UriInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a> in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/package-summary.html">jakarta.ws.rs.container</a> that return <a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getUriInfo()">getUriInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get request URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriInfo.html" title="interface in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.VariantListBuilder.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.VariantListBuilder.html
new file mode 100644
index 0000000..8b5d95e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.VariantListBuilder.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Variant.VariantListBuilder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Variant.VariantListBuilder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Variant.VariantListBuilder" class="title">Uses of Class<br>jakarta.ws.rs.core.Variant.VariantListBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#add()">add</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported encodings.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Set the encoding(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported languages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Set the language(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#mediaTypes(jakarta.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a> in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../ext/package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createVariantListBuilder()">createVariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.html b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.html
new file mode 100644
index 0000000..c616545
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/class-use/Variant.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.core.Variant (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.core.Variant (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.core.Variant" class="title">Uses of Class<br>jakarta.ws.rs.core.Variant</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a> in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> that return <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#getVariant()">getVariant</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity <a href="../Variant.html" title="class in jakarta.ws.rs.core"><code>variant</code></a> information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">jakarta.ws.rs.client</a> with parameters of type <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,jakarta.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in jakarta.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a> in <a href="../package-summary.html">jakarta.ws.rs.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> that return types with arguments of type <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.core</a> with parameters of type <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,jakarta.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variant(jakarta.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">
+ Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(jakarta.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">jakarta.ws.rs.core</a> with type arguments of type <a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in jakarta.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.html" title="class in jakarta.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/core/package-summary.html
new file mode 100644
index 0000000..840b3bf
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/package-summary.html
@@ -0,0 +1,449 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.core (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.core (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs.core</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;C extends <a href="Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&gt;</th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Configuration.html" title="interface in jakarta.ws.rs.core">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Feature.html" title="interface in jakarta.ws.rs.core">Feature</a></th>
+<td class="colLast">
+<div class="block">A feature extension contract.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="FeatureContext.html" title="interface in jakarta.ws.rs.core">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HttpHeaders.html" title="interface in jakarta.ws.rs.core">HttpHeaders</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PathSegment.html" title="interface in jakarta.ws.rs.core">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Request.html" title="interface in jakarta.ws.rs.core">Request</a></th>
+<td class="colLast">
+<div class="block">An injectable helper for request processing, all methods throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SecurityContext.html" title="interface in jakarta.ws.rs.core">SecurityContext</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to security related information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="StreamingOutput.html" title="interface in jakarta.ws.rs.core">StreamingOutput</a></th>
+<td class="colLast">
+<div class="block">A type that may be used as a resource method return value or as the entity in a <a href="Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a> when the application
+ wishes to stream the output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriInfo.html" title="interface in jakarta.ws.rs.core">UriInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to application and request URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Application.html" title="class in jakarta.ws.rs.core">Application</a></th>
+<td class="colLast">
+<div class="block">Defines the components of a JAX-RS application and supplies additional meta-data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CacheControl.html" title="class in jakarta.ws.rs.core">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Cookie.html" title="class in jakarta.ws.rs.core">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EntityTag.html" title="class in jakarta.ws.rs.core">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Form.html" title="class in jakarta.ws.rs.core">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GenericEntity.html" title="class in jakarta.ws.rs.core">GenericEntity</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Link.html" title="class in jakarta.ws.rs.core">Link</a></th>
+<td class="colLast">
+<div class="block">
+ Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core">Link.JaxbAdapter</a></th>
+<td class="colLast">
+<div class="block">An implementation of JAXB <code>XmlAdapter</code> that maps the JAX-RS
+ <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> type to a value that can be marshalled and unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core">Link.JaxbLink</a></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NewCookie.html" title="class in jakarta.ws.rs.core">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Response.html" title="class in jakarta.ws.rs.core">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Variant.html" title="class in jakarta.ws.rs.core">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Response.Status.html" title="enum in jakarta.ws.rs.core">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core">Response.Status.Family</a></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NoContentException.html" title="class in jakarta.ws.rs.core">NoContentException</a></th>
+<td class="colLast">
+<div class="block">An I/O exception thrown by <a href="../ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="UriBuilderException.html" title="class in jakarta.ws.rs.core">UriBuilderException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be
+ constructed based on the current state of the builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Context.html" title="annotation in jakarta.ws.rs.core">Context</a></th>
+<td class="colLast">
+<div class="block">This annotation is used to inject information into a class field, bean property or method parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/core/package-tree.html
new file mode 100644
index 0000000..40e33d5
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/package-tree.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.core Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.core Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs.core</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements jakarta.ws.rs.core.<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="MultivaluedHashMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="Application.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="CacheControl.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">CacheControl</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Cookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Cookie</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="NewCookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NewCookie</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="EntityTag.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">EntityTag</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Form.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Form</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="GenericEntity.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="GenericType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="Link.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="MediaType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MediaType</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Response.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a>)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">IOException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="NoContentException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NoContentException</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="UriBuilderException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="UriBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Variant.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a></li>
+<li class="circle">jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;ValueType,&#8203;BoundType&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="Configurable.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="FeatureContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="Configuration.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configuration</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Feature.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Feature</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="HttpHeaders.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Link.Builder.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a></li>
+<li class="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">Map</span></a>&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="PathSegment.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">PathSegment</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Request.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Request</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="SecurityContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="StreamingOutput.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="UriInfo.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">UriInfo</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="Context.html" title="annotation in jakarta.ws.rs.core"><span class="typeNameLink">Context</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="Response.Status.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> (implements jakarta.ws.rs.core.<a href="Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="Response.Status.Family.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/core/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/core/package-use.html
new file mode 100644
index 0000000..58f271f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/core/package-use.html
@@ -0,0 +1,700 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs.core (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs.core (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs.core" class="title">Uses of Package<br>jakarta.ws.rs.core</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.container">jakarta.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="../package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#jakarta.ws.rs">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.html#jakarta.ws.rs">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="../client/package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CacheControl.html#jakarta.ws.rs.client">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Configurable.html#jakarta.ws.rs.client">Configurable</a></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#jakarta.ws.rs.client">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#jakarta.ws.rs.client">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#jakarta.ws.rs.client">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Form.html#jakarta.ws.rs.client">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#jakarta.ws.rs.client">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#jakarta.ws.rs.client">Link</a></th>
+<td class="colLast">
+<div class="block">
+ Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#jakarta.ws.rs.client">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#jakarta.ws.rs.client">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#jakarta.ws.rs.client">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#jakarta.ws.rs.client">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#jakarta.ws.rs.client">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#jakarta.ws.rs.client">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#jakarta.ws.rs.client">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.html#jakarta.ws.rs.client">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.container">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="../container/package-summary.html">jakarta.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#jakarta.ws.rs.container">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#jakarta.ws.rs.container">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/FeatureContext.html#jakarta.ws.rs.container">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#jakarta.ws.rs.container">Link</a></th>
+<td class="colLast">
+<div class="block">
+ Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#jakarta.ws.rs.container">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#jakarta.ws.rs.container">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#jakarta.ws.rs.container">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#jakarta.ws.rs.container">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Request.html#jakarta.ws.rs.container">Request</a></th>
+<td class="colLast">
+<div class="block">An injectable helper for request processing, all methods throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#jakarta.ws.rs.container">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#jakarta.ws.rs.container">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SecurityContext.html#jakarta.ws.rs.container">SecurityContext</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to security related information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriInfo.html#jakarta.ws.rs.container">UriInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to application and request URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AbstractMultivaluedMap.html#jakarta.ws.rs.core">AbstractMultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><code>MultivaluedMap</code></a> that is backed by a [key, multi-value] store represented
+ as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CacheControl.html#jakarta.ws.rs.core">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configurable.html#jakarta.ws.rs.core">Configurable</a></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context in JAX-RS.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#jakarta.ws.rs.core">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in jakarta.ws.rs.core"><code>configurable</code></a> JAX-RS context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#jakarta.ws.rs.core">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#jakarta.ws.rs.core">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value of an ETag response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Feature.html#jakarta.ws.rs.core">Feature</a></th>
+<td class="colLast">
+<div class="block">A feature extension contract.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/FeatureContext.html#jakarta.ws.rs.core">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in jakarta.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>DynamicFeature</code></a> instances by JAX-RS
+ runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Form.html#jakarta.ws.rs.core">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the <code>"application/x-www-form-urlencoded"</code>
+ content type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#jakarta.ws.rs.core">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#jakarta.ws.rs.core">Link</a></th>
+<td class="colLast">
+<div class="block">
+ Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#jakarta.ws.rs.core">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.JaxbLink.html#jakarta.ws.rs.core">Link.JaxbLink</a></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#jakarta.ws.rs.core">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#jakarta.ws.rs.core">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#jakarta.ws.rs.core">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PathSegment.html#jakarta.ws.rs.core">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#jakarta.ws.rs.core">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.ResponseBuilder.html#jakarta.ws.rs.core">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.html#jakarta.ws.rs.core">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a> for the complete
+ list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.Family.html#jakarta.ws.rs.core">Response.Status.Family</a></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#jakarta.ws.rs.core">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#jakarta.ws.rs.core">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilderException.html#jakarta.ws.rs.core">UriBuilderException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be
+ constructed based on the current state of the builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.html#jakarta.ws.rs.core">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.VariantListBuilder.html#jakarta.ws.rs.core">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="../ext/package-summary.html">jakarta.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Application.html#jakarta.ws.rs.ext">Application</a></th>
+<td class="colLast">
+<div class="block">Defines the components of a JAX-RS application and supplies additional meta-data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#jakarta.ws.rs.ext">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#jakarta.ws.rs.ext">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#jakarta.ws.rs.ext">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#jakarta.ws.rs.ext">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.ResponseBuilder.html#jakarta.ws.rs.ext">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#jakarta.ws.rs.ext">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.VariantListBuilder.html#jakarta.ws.rs.ext">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.core</a> used by <a href="../sse/package-summary.html">jakarta.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#jakarta.ws.rs.sse">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#jakarta.ws.rs.sse">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ContextResolver.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ContextResolver.html
new file mode 100644
index 0000000..e52951a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ContextResolver.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ContextResolver (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContextResolver (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContextResolver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ContextResolver" class="title">Interface ContextResolver&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the context</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ContextResolver&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supplies context information to resource classes and other providers.
+
+ A <code>ContextResolver</code> implementation may be annotated with <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a> to restrict the media
+ types for which it will be considered suitable.
+ <p>
+ Providers implementing <code>ContextResolver</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>, 
+<a href="Providers.html#getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)"><code>Providers.getContextResolver(Class, jakarta.ws.rs.core.MediaType)</code></a>, 
+<a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ContextResolver.html" title="type parameter in ContextResolver">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext(java.lang.Class)">getContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getContext(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContext</h4>
+<pre class="methodSignature"><a href="ContextResolver.html" title="type parameter in ContextResolver">T</a>&nbsp;getContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of object for which a context is desired</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a context for the supplied type or <code>null</code> if a context for the supplied type is not available from this
+ provider.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContextResolver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ExceptionMapper.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ExceptionMapper.html
new file mode 100644
index 0000000..5670381
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ExceptionMapper.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ExceptionMapper (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExceptionMapper (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExceptionMapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ExceptionMapper" class="title">Interface ExceptionMapper&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>E</code> - exception type supported by the provider.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ExceptionMapper&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</span></pre>
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.
+ <p>
+ Providers implementing <code>ExceptionMapper</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toResponse(E)">toResponse</a></span>&#8203;(<a href="ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Map an exception to a <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="toResponse(java.lang.Throwable)">
+<!--   -->
+</a><a id="toResponse(E)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toResponse</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in jakarta.ws.rs.core">Response</a>&nbsp;toResponse&#8203;(<a href="ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</pre>
+<div class="block">Map an exception to a <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>. Returning <code>null</code> results in a
+ <a href="../core/Response.Status.html#NO_CONTENT"><code>Response.Status.NO_CONTENT</code></a> response. Throwing a runtime exception results in a
+ <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>Response.Status.INTERNAL_SERVER_ERROR</code></a> response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - the exception to map to a response.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a response mapped from the supplied exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExceptionMapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/InterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/InterceptorContext.html
new file mode 100644
index 0000000..934fc9f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/InterceptorContext.html
@@ -0,0 +1,580 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>InterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface InterceptorContext" class="title">Interface InterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></code>, <code><a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InterceptorContext</span></pre>
+<div class="block">Context shared by message body interceptors that can be used to wrap calls to
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>. The getters
+ and setters in this context class correspond to the parameters in the aforementioned methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a>, 
+<a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a>, 
+<a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptorContext</code></a>, 
+<a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptorContext</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotations()">getAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider
+ invocation.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericType()">getGenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the type of the object to be produced or written.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get media type of HTTP entity.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider
+ invocation.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setGenericType(java.lang.reflect.Type)">setGenericType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Update type of the object to be produced or written.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaType(jakarta.ws.rs.core.MediaType)">setMediaType</a></span>&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Update media type of HTTP entity.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response exchange context.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setType(java.lang.Class)">setType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Update Java type before calling message body provider.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response exchange context, or <code>null</code>
+ if there is no property by that name.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p>
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the <code>ServletRequest</code> and contain all
+ the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or <code>null</code> if no property exists matching the
+ given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names available within the
+ context of the current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of a property.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code> and expose all the attributes
+ available in the <code>ServletRequest</code>. Any modifications of the properties are also reflected in the set of
+ properties of the associated <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+ <p>
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>. Custom property names should
+ follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p>
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the <code>ServletRequest</code> and contain all
+ the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> to retrieve the property value will return <code>null</code>.
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the <code>ServletRequest</code> and contain all
+ the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getAnnotations()</pre>
+<div class="block">Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider
+ invocation.
+
+ E.g. if the message body is to be converted into a method parameter, this will be the annotations on that parameter
+ returned by <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true#getParameterAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getParameterAnnotations()</code></a>; if the
+ server-side response entity instance is to be converted into an output stream, this will be the annotations on the
+ matched resource method returned by <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AccessibleObject.html?is-external=true#getAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getAnnotations()</code></a>.
+
+ This method may return an empty array in case the interceptor is not invoked in a context of any particular resource
+ method (e.g. as part of the client API), but will never return <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations declared on the artifact that initiated the intercepted entity provider invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="setAnnotations(java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAnnotations</h4>
+<pre class="methodSignature">void&nbsp;setAnnotations&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider
+ invocation.
+
+ Calling this method has no effect in the client API.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotations</code> - updated annotations declarataion of the artifact that initiated the intercepted entity provider
+ invocation. Must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the input parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getType()</pre>
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>java type supported by provider</dd>
+</dl>
+</li>
+</ul>
+<a id="setType(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre class="methodSignature">void&nbsp;setType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Update Java type before calling message body provider.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - java type for provider</dd>
+</dl>
+</li>
+</ul>
+<a id="getGenericType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGenericType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getGenericType()</pre>
+<div class="block">Get the type of the object to be produced or written.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>type of object produced or written</dd>
+</dl>
+</li>
+</ul>
+<a id="setGenericType(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setGenericType</h4>
+<pre class="methodSignature">void&nbsp;setGenericType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Update type of the object to be produced or written.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>genericType</code> - new type for object</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get media type of HTTP entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>media type of HTTP entity</dd>
+</dl>
+</li>
+</ul>
+<a id="setMediaType(jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setMediaType</h4>
+<pre class="methodSignature">void&nbsp;setMediaType&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Update media type of HTTP entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - new type for HTTP entity</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyReader.html b/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyReader.html
new file mode 100644
index 0000000..15c93dc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyReader.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MessageBodyReader (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageBodyReader (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface MessageBodyReader" class="title">Interface MessageBodyReader&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - Java type supported by the provider</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MessageBodyReader&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supports the conversion of a stream to a Java type.
+
+ A <code>MessageBodyReader</code> implementation may be annotated with <a href="../Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a> to restrict the media
+ types for which it will be considered suitable. The <code>MessageBodyReader</code> pipeline is executed if the matching 
+ resource method declares an entity parameter or uses at least one <a href="../FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>.
+ <p>
+ Providers implementing <code>MessageBodyReader</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isReadable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+          <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a particular type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isReadable</h4>
+<pre class="methodSignature">boolean&nbsp;isReadable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                   <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a particular type. The <code>type</code> parameter gives the
+ class of the instance that should be produced, the <code>genericType</code> parameter gives the
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>java.lang.reflect.Type</code></a> of the instance that should be produced. E.g. if the instance
+ to be produced is <code>List&lt;String&gt;</code>, the <code>type</code> parameter will be <code>java.util.List</code> and the
+ <code>genericType</code> parameter will be <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>java.lang.reflect.ParameterizedType</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of instance to be produced.</dd>
+<dd><code>genericType</code> - the type of instance to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ <code>Method.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by <code>Method.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity, if one is not specified in the request then
+ <code>application/octet-stream</code> is used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the type is supported, otherwise <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readFrom</h4>
+<pre class="methodSignature"><a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&nbsp;readFrom&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+           <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)
+    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+           <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.
+ <p>
+ In case the entity input stream is empty, the reader is expected to either return a Java representation of a
+ zero-length entity or throw a <a href="../core/NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> in case no zero-length entity
+ representation is defined for the supported Java type. A <code>NoContentException</code>, if thrown by a message body
+ reader while reading a server request entity, is automatically translated by JAX-RS server runtime into a
+ <a href="../BadRequestException.html" title="class in jakarta.ws.rs"><code>BadRequestException</code></a> wrapping the original <code>NoContentException</code> and rethrown for a standard
+ processing by the registered <a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><code>exception mappers</code></a>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type that is to be read from the entity stream.</dd>
+<dd><code>genericType</code> - the type of instance to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ <code>Method.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by <code>Method.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dd><code>httpHeaders</code> - the read-only HTTP headers associated with HTTP entity.</dd>
+<dd><code>entityStream</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> of the HTTP entity. The caller is responsible for ensuring that the input
+ stream ends when the entity has been consumed. The implementation should not close the input stream.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type that was read from the stream. In case the entity input stream is empty, the reader is expected to
+ either return an instance representing a zero-length entity or throw a <a href="../core/NoContentException.html" title="class in jakarta.ws.rs.core"><code>NoContentException</code></a> in
+ case no zero-length entity representation is defined for the supported Java type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises. In case the entity input stream is empty and the reader is not
+ able to produce a Java representation for a zero-length entity, <code>NoContentException</code> is expected to be thrown.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - if a specific HTTP error response needs to be produced. Only effective if
+ thrown prior to the response being committed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyWriter.html b/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyWriter.html
new file mode 100644
index 0000000..45f0e4f
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/MessageBodyWriter.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>MessageBodyWriter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageBodyWriter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":18,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface MessageBodyWriter" class="title">Interface MessageBodyWriter&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type that can be written.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MessageBodyWriter&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supports the conversion of a Java type to a stream.
+
+ A <code>MessageBodyWriter</code> implementation may be annotated with <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a> to restrict the media
+ types for which it will be considered suitable. The <code>MessageBodyWriter</code> pipeline is only invoked if there is 
+ a non-null response entity.
+ <p>
+ Providers implementing <code>MessageBodyWriter</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getSize</a></span>&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of the serialized form
+ of <code>t</code>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">isWriteable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWriteable</h4>
+<pre class="methodSignature">boolean&nbsp;isWriteable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written, obtained either by reflection of a resource method return type
+ or via inspection of the returned instance. <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> provides a way to specify this
+ information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the type is supported, otherwise <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSize(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a><a id="getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre class="methodSignature">default&nbsp;long&nbsp;getSize&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                     <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of the serialized form
+ of <code>t</code>. A non-negative return value has been used in a HTTP <code>Content-Length</code> header.
+ <p>
+ As of JAX-RS 2.0, the method has been deprecated and the value returned by the method is ignored by a JAX-RS runtime.
+ All <code>MessageBodyWriter</code> implementations are advised to return <code>-1</code> from the method. Responsibility to
+ compute the actual <code>Content-Length</code> header value has been delegated to JAX-RS runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - the instance to write</dd>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written. <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> provides a way to
+ specify this information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>length in bytes or -1 if the length cannot be determined in advance.</dd>
+</dl>
+</li>
+</ul>
+<a id="writeTo(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">
+<!--   -->
+</a><a id="writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeTo</h4>
+<pre class="methodSignature">void&nbsp;writeTo&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+             <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType,
+             <a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)
+      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+             <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Write a type to an HTTP message. The message header map is mutable but any changes must be made before writing to the
+ output stream since the headers will be flushed prior to writing the message body.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - the instance to write.</dd>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written. <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a> provides a way to
+ specify this information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dd><code>httpHeaders</code> - a mutable map of the HTTP message headers.</dd>
+<dd><code>entityStream</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> for the HTTP entity. The implementation must not close the output
+ stream.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - if a specific HTTP error response needs to be produced. Only effective if
+ thrown prior to the message being committed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.Lazy.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.Lazy.html
new file mode 100644
index 0000000..8bc8cef
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.Lazy.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ParamConverter.Lazy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverter.Lazy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.Lazy.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Annotation Type ParamConverter.Lazy" class="title">Annotation Type ParamConverter.Lazy</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public static @interface <span class="memberNameLabel">ParamConverter.Lazy</span></pre>
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> delegated to a <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>parameter
+ converter</code></a> annotated with <code>@Lazy</code> annotation SHOULD occur only once the value is actually required (e.g. to be
+ injected for the first time).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.Lazy.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.html
new file mode 100644
index 0000000..29b7d19
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverter.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ParamConverter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ParamConverter" class="title">Interface ParamConverter&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the supported Java type convertible to/from a <code>String</code> format.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ParamConverter&lt;T&gt;</span></pre>
+<div class="block">Defines a contract for a delegate responsible for converting between a <code>String</code> form of a message parameter
+ value and the corresponding custom Java type <code>T</code>.
+
+ Conversion of message parameter values injected via <a href="../PathParam.html" title="annotation in jakarta.ws.rs"><code>&#64;PathParam</code></a>,
+ <a href="../QueryParam.html" title="annotation in jakarta.ws.rs"><code>&#64;QueryParam</code></a>, <a href="../MatrixParam.html" title="annotation in jakarta.ws.rs"><code>&#64;MatrixParam</code></a>,
+ <a href="../FormParam.html" title="annotation in jakarta.ws.rs"><code>&#64;FormParam</code></a>, <a href="../CookieParam.html" title="annotation in jakarta.ws.rs"><code>&#64;CookieParam</code></a> and
+ <a href="../HeaderParam.html" title="annotation in jakarta.ws.rs"><code>&#64;HeaderParam</code></a> is supported.
+ JAX-RS implementations MUST support the <code>ParamConverter</code> mechanism for all Java types. If a
+ <code>ParamConverter</code> is available for a type, it MUST be preferred over all other conversion strategies mentioned 
+ in section 3.2 (i.e. single <code>String</code> argument constructor, static <code>valueOf</code> or <code>fromString</code> 
+ methods, etc.).
+ <p>
+ By default, when used for injection of parameter values, a selected <code>ParamConverter</code> instance MUST be used
+ eagerly by a JAX-RS runtime to convert any <a href="../DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> in the resource or provider model, that
+ is during the application deployment, before any value &ndash; default or otherwise &ndash; is actually required.
+ This conversion strategy ensures that any errors in the default values are reported as early as possible. This
+ default behavior may be overridden by annotating the <code>ParamConverter</code> implementation class with a <a href="ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Lazy</code></a> annotation. In such case any default value conversion delegated to the <code>@Lazy</code>-annotated converter
+ will be deferred to a latest possible moment (i.e. until the injection of such default value is required).
+ </p>
+ <p>
+ NOTE: A service implementing this contract is not recognized as a registrable JAX-RS extension provider. Instead, a
+ <a href="ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverterProvider</code></a> instance responsible for providing <code>ParamConverter</code> instances has to be
+ registered as one of the JAX-RS extension providers.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">ParamConverter.Lazy</a></span></code></th>
+<td class="colLast">
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> delegated to a <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>parameter
+ converter</code></a> annotated with <code>@Lazy</code> annotation SHOULD occur only once the value is actually required (e.g.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ParamConverter.html" title="type parameter in ParamConverter">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromString(java.lang.String)">fromString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(T)">toString</a></span>&#8203;(<a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Convert the supplied value to a String.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromString</h4>
+<pre class="methodSignature"><a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;fromString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the string value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created instance of <code>T</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString(java.lang.Object)">
+<!--   -->
+</a><a id="toString(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString&#8203;(<a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;value)</pre>
+<div class="block">Convert the supplied value to a String.
+ <p>
+ This method is reserved for future use. Proprietary JAX-RS extensions may leverage the method. Users should be aware
+ that any such support for the method comes at the expense of producing non-portable code.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of type <code>T</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a String representation of the value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied object cannot be serialized or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverterProvider.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverterProvider.html
new file mode 100644
index 0000000..53cb23d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ParamConverterProvider.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ParamConverterProvider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverterProvider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverterProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ParamConverterProvider" class="title">Interface ParamConverterProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ParamConverterProvider</span></pre>
+<div class="block">Contract for a provider of <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instances.
+ <p>
+ Providers implementing <code>ParamConverterProvider</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Obtain a <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion for an instance of a particular Java type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConverter</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a>&lt;T&gt;&nbsp;getConverter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Obtain a <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion for an instance of a particular Java type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the supported Java type convertible to/from a <code>String</code> format.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rawType</code> - the raw type of the object to be converted.</dd>
+<dd><code>genericType</code> - the type of object to be converted. E.g. if an String value representing the injected request
+ parameter is to be converted into a method parameter, this will be the formal type of the method parameter as
+ returned by <code>Class.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations associated with the convertible parameter instance. E.g. if a string
+ value is to be converted into a method parameter, this would be the annotations on that parameter as returned by
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true#getParameterAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getParameterAnnotations()</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string converter, otherwise <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverterProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/Provider.html b/apidocs/3.0.0/jakarta/ws/rs/ext/Provider.html
new file mode 100644
index 0000000..50d1ab3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/Provider.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Provider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Provider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Provider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Annotation Type Provider" class="title">Annotation Type Provider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Provider</span></pre>
+<div class="block">Marks an implementation of an extension interface that should be discoverable by JAX-RS runtime during a provider
+ scanning phase.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Provider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/Providers.html b/apidocs/3.0.0/jakarta/ws/rs/ext/Providers.html
new file mode 100644
index 0000000..50869d6
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/Providers.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Providers (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Providers (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Providers.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface Providers" class="title">Interface Providers</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Providers</span></pre>
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Context.html" title="annotation in jakarta.ws.rs.core"><code>Context</code></a>, 
+<a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a>, 
+<a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a>, 
+<a href="ContextResolver.html" title="interface in jakarta.ws.rs.ext"><code>ContextResolver</code></a>, 
+<a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><code>ExceptionMapper</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;<br><a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExceptionMapper(java.lang.Class)">getExceptionMapper</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageBodyReader</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;&nbsp;getMessageBodyReader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                                              <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a message body reader that matches a set of criteria. The set of readers is first filtered by comparing the
+ supplied value of <code>mediaType</code> with the value of each reader's <a href="../Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a>, ensuring the
+ supplied value of <code>type</code> is assignable to the generic type of the reader, and eliminating those that do not
+ match. The list of matching readers is then ordered with those with the best matching values of
+ <a href="../Consumes.html" title="annotation in jakarta.ws.rs"><code>Consumes</code></a> (x/y &gt; x&#47;* &gt; *&#47;*) sorted first. Finally, the
+ <a href="MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)"><code>MessageBodyReader.isReadable(Class, Type, Annotation[], MediaType)</code></a> method is called on each reader in order
+ using the supplied criteria and the first reader that returns <code>true</code> is selected and returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the the object that is to be read.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the object that is to be read.</dd>
+<dd><code>genericType</code> - the type of object to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ <code>Class.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by <code>Class.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the data that will be read.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a MessageBodyReader that matches the supplied criteria or <code>null</code> if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageBodyWriter</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;&nbsp;getMessageBodyWriter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                                              <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a message body writer that matches a set of criteria. The set of writers is first filtered by comparing the
+ supplied value of <code>mediaType</code> with the value of each writer's <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a>, ensuring the
+ supplied value of <code>type</code> is assignable to the generic type of the reader, and eliminating those that do not
+ match. The list of matching writers is then ordered with those with the best matching values of
+ <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a> (x/y &gt; x&#47;* &gt; *&#47;*) sorted first. Finally, the
+ <a href="MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)"><code>MessageBodyWriter.isWriteable(Class, Type, Annotation[], MediaType)</code></a> method is called on each writer in order
+ using the supplied criteria and the first writer that returns <code>true</code> is selected and returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the object that is to be written.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the object that is to be written.</dd>
+<dd><code>genericType</code> - the type of object to be written. E.g. if the message body is to be produced from a field, this
+ will be the declared type of the field as returned by <code>Field.getGenericType</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the artifact that will be written. E.g. if the
+ message body is to be produced from a field, this will be the annotations on that field returned by
+ <code>Field.getDeclaredAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the data that will be written.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a MessageBodyReader that matches the supplied criteria or <code>null</code> if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getExceptionMapper(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExceptionMapper</h4>
+<pre class="methodSignature">&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;<a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;&nbsp;getExceptionMapper&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Get an exception mapping provider for a particular class of exception. Returns the provider whose generic type is the
+ nearest superclass of <code>type</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the exception handled by the exception mapping provider.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of exception.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><code>ExceptionMapper</code></a> for the supplied type or <code>null</code> if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContextResolver</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;T&gt;&nbsp;getContextResolver&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                                          <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a context resolver for a particular type of context and media type. The set of resolvers is first filtered by
+ comparing the supplied value of <code>mediaType</code> with the value of each resolver's <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a>,
+ ensuring the generic type of the context resolver is assignable to the supplied value of <code>contextType</code>, and
+ eliminating those that do not match. If only one resolver matches the criteria then it is returned. If more than one
+ resolver matches then the list of matching resolvers is ordered with those with the best matching values of
+ <a href="../Produces.html" title="annotation in jakarta.ws.rs"><code>Produces</code></a> (x/y &gt; x&#47;* &gt; *&#47;*) sorted first. A proxy is returned that delegates calls
+ to <a href="ContextResolver.html#getContext(java.lang.Class)"><code>ContextResolver.getContext(java.lang.Class)</code></a> to each matching context resolver in order and returns the
+ first non-null value it obtains or null if all matching context resolvers return null.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the context.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>contextType</code> - the class of context desired.</dd>
+<dd><code>mediaType</code> - the media type of data for which a context is required.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a matching context resolver instance or <code>null</code> if no matching context providers are found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Providers.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptor.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptor.html
new file mode 100644
index 0000000..0d60951
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptor.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ReaderInterceptor (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderInterceptor (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ReaderInterceptor" class="title">Interface ReaderInterceptor</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ReaderInterceptor</span></pre>
+<div class="block">Interface for message body reader interceptors that wrap around calls to
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.
+ <p>
+ Providers implementing <code>ReaderInterceptor</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase. Message body interceptor instances may also be
+ discovered and bound <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>aroundReadFrom</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;aroundReadFrom&#8203;(<a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)
+               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                      <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.
+
+ The parameters of the wrapped method called are available from <code>context</code>. Implementations of this method SHOULD
+ explicitly call <a href="ReaderInterceptorContext.html#proceed()"><code>ReaderInterceptorContext.proceed()</code></a> to invoke the next interceptor in the chain, and ultimately
+ the wrapped <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - invocation context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>result of next interceptor invoked or the wrapped method if last interceptor in chain.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped <code>MessageBodyReader.readFrom</code>
+ method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptorContext.html
new file mode 100644
index 0000000..5e239cb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/ReaderInterceptorContext.html
@@ -0,0 +1,359 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>ReaderInterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderInterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface ReaderInterceptorContext" class="title">Interface ReaderInterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ReaderInterceptorContext</span>
+extends <a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></pre>
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}. The getters and setters in this context class correspond to the
+ parameters of the intercepted method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a>, 
+<a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInputStream()">getInputStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the input stream of the object to be read.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInputStream(java.io.InputStream)">setInputStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;is)</code></th>
+<td class="colLast">
+<div class="block">Set the input stream of the object to be read.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.ext.InterceptorContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.ext.<a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></h3>
+<code><a href="InterceptorContext.html#getAnnotations()">getAnnotations</a>, <a href="InterceptorContext.html#getGenericType()">getGenericType</a>, <a href="InterceptorContext.html#getMediaType()">getMediaType</a>, <a href="InterceptorContext.html#getProperty(java.lang.String)">getProperty</a>, <a href="InterceptorContext.html#getPropertyNames()">getPropertyNames</a>, <a href="InterceptorContext.html#getType()">getType</a>, <a href="InterceptorContext.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a>, <a href="InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType</a>, <a href="InterceptorContext.html#setMediaType(jakarta.ws.rs.core.MediaType)">setMediaType</a>, <a href="InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty</a>, <a href="InterceptorContext.html#setType(java.lang.Class)">setType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="proceed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>proceed</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;proceed()
+        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+               <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Proceed to the next interceptor in the chain. Return the result of the next interceptor invoked. Interceptors MUST
+ explicitly call this method to continue the execution chain; the call to this method in the last interceptor of the
+ chain will invoke the wrapped <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>result of next interceptor invoked.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInputStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInputStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getInputStream()</pre>
+<div class="block">Get the input stream of the object to be read. The JAX-RS runtime is responsible for closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>input stream of the object to be read.</dd>
+</dl>
+</li>
+</ul>
+<a id="setInputStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInputStream</h4>
+<pre class="methodSignature">void&nbsp;setInputStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;is)</pre>
+<div class="block">Set the input stream of the object to be read. For example, by wrapping it with another input stream. The JAX-RS
+ runtime is responsible for closing the input stream that is set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>is</code> - new input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get mutable map of HTTP headers.
+ <p>
+ Note that while the headers are mutable, a <a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>reader interceptor</code></a> should typically roll-back
+ any header modifications once the call to <a href="#proceed()"><code>context.proceed()</code></a> returns, to avoid externally visible
+ side-effects of the interceptor invocation.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of HTTP headers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html b/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html
new file mode 100644
index 0000000..e9a8afc
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.HeaderDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface RuntimeDelegate.HeaderDelegate" class="title">Interface RuntimeDelegate.HeaderDelegate&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - a JAX-RS type that corresponds to the value of a HTTP header.</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">RuntimeDelegate.HeaderDelegate&lt;T&gt;</span></pre>
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromString(java.lang.String)">fromString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(T)">toString</a></span>&#8203;(<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Convert the supplied value to a String.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromString</h4>
+<pre class="methodSignature"><a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;fromString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the string value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created instance of <code>T</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString(java.lang.Object)">
+<!--   -->
+</a><a id="toString(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString&#8203;(<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;value)</pre>
+<div class="block">Convert the supplied value to a String.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of type <code>T</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a String representation of the value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied object cannot be serialized or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.HeaderDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.html b/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.html
new file mode 100644
index 0000000..75244e0
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/RuntimeDelegate.html
@@ -0,0 +1,607 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>RuntimeDelegate (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeDelegate (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":9,"i7":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Class RuntimeDelegate" class="title">Class RuntimeDelegate</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.ext.RuntimeDelegate</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">RuntimeDelegate</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality. Regular users of JAX-RS are not expected to use this class
+ directly and overriding an implementation of this class with a user supplied subclass may cause unexpected behavior.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation to be returned from
+ <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RuntimeDelegate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)">createEndpoint</a></span>&#8203;(<a href="../core/Application.html" title="class in jakarta.ws.rs.core">Application</a>&nbsp;application,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)</code></th>
+<td class="colLast">
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createHeaderDelegate(java.lang.Class)">createHeaderDelegate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Obtain an instance of a <a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createLinkBuilder()">createLinkBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract <a href="../core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createResponseBuilder()">createResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract <a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createUriBuilder()">createUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>abstract <a href="../core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createVariantListBuilder()">createVariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInstance(jakarta.ws.rs.ext.RuntimeDelegate)">setInstance</a></span>&#8203;(<a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</code></th>
+<td class="colLast">
+<div class="block">Set the runtime delegate that will be used by JAX-RS classes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_RUNTIME_DELEGATE_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_RUNTIME_DELEGATE_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_RUNTIME_DELEGATE_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation to be returned from
+ <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.ext.RuntimeDelegate.JAXRS_RUNTIME_DELEGATE_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RuntimeDelegate</h4>
+<pre>protected&nbsp;RuntimeDelegate()</pre>
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a>&nbsp;getInstance()</pre>
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance. If an instance had not already been created and set via
+ <a href="#setInstance(jakarta.ws.rs.ext.RuntimeDelegate)"><code>setInstance(RuntimeDelegate)</code></a>, the first invocation will create an instance which will then be cached for
+ future use.
+
+ <p>
+ The algorithm used to locate the RuntimeDelegate subclass to use consists of the following steps:
+ </p>
+ <ul>
+ <li>If a resource with the name of <code>META-INF/services/jakarta.ws.rs.ext.RuntimeDelegate</code> exists, then its first
+ line, if present, is used as the UTF-8 encoded name of the implementation class.</li>
+ <li>If the $java.home/lib/jaxrs.properties file exists and it is readable by the
+ <code>java.util.Properties.load(InputStream)</code> method and it contains an entry whose key is
+ <code>jakarta.ws.rs.ext.RuntimeDelegate</code>, then the value of that entry is used as the name of the implementation
+ class.</li>
+ <li>If a system property with the name <code>jakarta.ws.rs.ext.RuntimeDelegate</code> is defined, then its value is used as
+ the name of the implementation class.</li>
+ <li>Finally, a default implementation class name is used.</li>
+ </ul></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of <code>RuntimeDelegate</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setInstance(jakarta.ws.rs.ext.RuntimeDelegate)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInstance</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;setInstance&#8203;(<a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</pre>
+<div class="block">Set the runtime delegate that will be used by JAX-RS classes. If this method is not called prior to
+ <a href="#getInstance()"><code>getInstance()</code></a> then an implementation will be sought as described in <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rd</code> - the runtime delegate instance</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink">SecurityException</a></code> - if there is a security manager and the permission ReflectPermission("suppressAccessChecks")
+ has not been granted.</dd>
+</dl>
+</li>
+</ul>
+<a id="createUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createUriBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core">UriBuilder</a>&nbsp;createUriBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>UriBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/UriBuilder.html" title="class in jakarta.ws.rs.core"><code>UriBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createResponseBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createResponseBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core">Response.ResponseBuilder</a>&nbsp;createResponseBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>ResponseBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><code>Response.ResponseBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createVariantListBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createVariantListBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;createVariantListBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>VariantListBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><code>Variant.VariantListBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createEndpoint</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;createEndpoint&#8203;(<a href="../core/Application.html" title="class in jakarta.ws.rs.core">Application</a>&nbsp;application,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></pre>
+<div class="block">Create a configured instance of the supplied endpoint type. How the returned endpoint instance is published is
+ dependent on the type of endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - endpoint type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>application</code> - the application configuration.</dd>
+<dd><code>endpointType</code> - the type of endpoint instance to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a configured instance of the requested type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if application is null or the requested endpoint type is not supported.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the implementation supports no endpoint types.</dd>
+</dl>
+</li>
+</ul>
+<a id="createHeaderDelegate(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createHeaderDelegate</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;&nbsp;createHeaderDelegate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)
+                                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Obtain an instance of a <a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class. An implementation is required to support the
+ following values for type: <a href="../core/CacheControl.html" title="class in jakarta.ws.rs.core"><code>CacheControl</code></a>, <a href="../core/Cookie.html" title="class in jakarta.ws.rs.core"><code>Cookie</code></a>,
+ <a href="../core/EntityTag.html" title="class in jakarta.ws.rs.core"><code>EntityTag</code></a>, <a href="../core/Link.html" title="class in jakarta.ws.rs.core"><code>Link</code></a>, <a href="../core/NewCookie.html" title="class in jakarta.ws.rs.core"><code>NewCookie</code></a>,
+ <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> and <code>java.util.Date</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - header type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of <code>HeaderDelegate</code> for the supplied type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if type is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createLinkBuilder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createLinkBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core">Link.Builder</a>&nbsp;createLinkBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>Link.Builder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><code>Link.Builder</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptor.html b/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptor.html
new file mode 100644
index 0000000..9c449bf
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptor.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>WriterInterceptor (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInterceptor (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface WriterInterceptor" class="title">Interface WriterInterceptor</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">WriterInterceptor</span></pre>
+<div class="block">Interface for message body writer interceptors that wrap around calls to
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.
+
+ <p>
+ Providers implementing <code>WriterInterceptor</code> contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with <a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase. Message body interceptor instances may also be
+ discovered and bound <a href="../container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>aroundWriteTo</h4>
+<pre class="methodSignature">void&nbsp;aroundWriteTo&#8203;(<a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)
+            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                   <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method. The parameters of the wrapped method
+ called are available from <code>context</code>. Implementations of this method SHOULD explicitly call
+ <a href="WriterInterceptorContext.html#proceed()"><code>WriterInterceptorContext.proceed()</code></a> to invoke the next interceptor in the chain, and ultimately the wrapped
+ <code>MessageBodyWriter.writeTo</code> method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - invocation context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped <code>MessageBodyWriter.writeTo</code>
+ method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyWriter.writeTo</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptorContext.html
new file mode 100644
index 0000000..e0fb60a
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/WriterInterceptorContext.html
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>WriterInterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.ext</a></div>
+<h2 title="Interface WriterInterceptorContext" class="title">Interface WriterInterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WriterInterceptorContext</span>
+extends <a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></pre>
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>. The getters and setters in this context class correspond to the
+ parameters of the intercepted method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a>, 
+<a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get object to be written as HTTP entity.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOutputStream()">getOutputStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the output stream for the object to be written.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Update object to be written as HTTP entity.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOutputStream(java.io.OutputStream)">setOutputStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;os)</code></th>
+<td class="colLast">
+<div class="block">Set a new output stream for the object to be written.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.ext.InterceptorContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.ext.<a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></h3>
+<code><a href="InterceptorContext.html#getAnnotations()">getAnnotations</a>, <a href="InterceptorContext.html#getGenericType()">getGenericType</a>, <a href="InterceptorContext.html#getMediaType()">getMediaType</a>, <a href="InterceptorContext.html#getProperty(java.lang.String)">getProperty</a>, <a href="InterceptorContext.html#getPropertyNames()">getPropertyNames</a>, <a href="InterceptorContext.html#getType()">getType</a>, <a href="InterceptorContext.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a>, <a href="InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType</a>, <a href="InterceptorContext.html#setMediaType(jakarta.ws.rs.core.MediaType)">setMediaType</a>, <a href="InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty</a>, <a href="InterceptorContext.html#setType(java.lang.Class)">setType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="proceed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>proceed</h4>
+<pre class="methodSignature">void&nbsp;proceed()
+      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+             <a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></pre>
+<div class="block">Proceed to the next interceptor in the chain.
+
+ Interceptors MUST explicitly call this method to continue the execution chain; the call to this method in the last
+ interceptor of the chain will invoke the wrapped <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped <code>MessageBodyWriter.writeTo</code>
+ method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyWriter.writeTo</code> method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get object to be written as HTTP entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>object to be written as HTTP entity.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Update object to be written as HTTP entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - new object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOutputStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getOutputStream()</pre>
+<div class="block">Get the output stream for the object to be written. The JAX-RS runtime is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output stream for the object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="setOutputStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOutputStream</h4>
+<pre class="methodSignature">void&nbsp;setOutputStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;os)</pre>
+<div class="block">Set a new output stream for the object to be written. For example, by wrapping it with another output stream. The
+ JAX-RS runtime is responsible for closing the output stream that is set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>os</code> - new output stream for the object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get mutable map of HTTP headers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of HTTP headers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptorContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ContextResolver.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ContextResolver.html
new file mode 100644
index 0000000..af426a9
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ContextResolver.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ContextResolver (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ContextResolver (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ContextResolver" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ContextResolver</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContextResolver.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ExceptionMapper.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ExceptionMapper.html
new file mode 100644
index 0000000..a8525bf
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ExceptionMapper.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ExceptionMapper (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ExceptionMapper (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ExceptionMapper" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ExceptionMapper</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;<br><a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getExceptionMapper(java.lang.Class)">getExceptionMapper</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/InterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/InterceptorContext.html
new file mode 100644
index 0000000..596a6a5
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/InterceptorContext.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.InterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.InterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.InterceptorContext" class="title">Uses of Interface<br>jakarta.ws.rs.ext.InterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="../ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="../WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="../MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyReader.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyReader.html
new file mode 100644
index 0000000..7edc2ab
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyReader.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.MessageBodyReader (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.MessageBodyReader (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.MessageBodyReader" class="title">Uses of Interface<br>jakarta.ws.rs.ext.MessageBodyReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyWriter.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyWriter.html
new file mode 100644
index 0000000..37d85fd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/MessageBodyWriter.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.MessageBodyWriter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.MessageBodyWriter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.MessageBodyWriter" class="title">Uses of Interface<br>jakarta.ws.rs.ext.MessageBodyWriter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.Lazy.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.Lazy.html
new file mode 100644
index 0000000..1d54973
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.Lazy.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ext.ParamConverter.Lazy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ext.ParamConverter.Lazy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ext.ParamConverter.Lazy" class="title">Uses of Class<br>jakarta.ws.rs.ext.ParamConverter.Lazy</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.ParamConverter.Lazy</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.html
new file mode 100644
index 0000000..25a0a59
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverter.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ParamConverter (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ParamConverter (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ParamConverter" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ParamConverter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ParamConverterProvider.</span><code><span class="memberNameLink"><a href="../ParamConverterProvider.html#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Obtain a <a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion for an instance of a particular Java type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverterProvider.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverterProvider.html
new file mode 100644
index 0000000..559f28d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ParamConverterProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ParamConverterProvider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ParamConverterProvider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ParamConverterProvider" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ParamConverterProvider</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.ParamConverterProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Provider.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Provider.html
new file mode 100644
index 0000000..1313cbb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Provider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ext.Provider (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ext.Provider (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Provider.html" title="annotation in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ext.Provider" class="title">Uses of Class<br>jakarta.ws.rs.ext.Provider</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.Provider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Provider.html" title="annotation in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Providers.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Providers.html
new file mode 100644
index 0000000..0aaf850
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/Providers.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.Providers (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.Providers (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Providers.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.Providers" class="title">Uses of Interface<br>jakarta.ws.rs.ext.Providers</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.Providers</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Providers.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptor.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptor.html
new file mode 100644
index 0000000..b96c94b
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptor.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ReaderInterceptor (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ReaderInterceptor (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ReaderInterceptor" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ReaderInterceptor</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.ReaderInterceptor</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptorContext.html
new file mode 100644
index 0000000..b42c3f3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/ReaderInterceptorContext.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.ReaderInterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.ReaderInterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.ReaderInterceptorContext" class="title">Uses of Interface<br>jakarta.ws.rs.ext.ReaderInterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptor.</span><code><span class="memberNameLink"><a href="../ReaderInterceptor.html#aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html
new file mode 100644
index 0000000..0c296bb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate" class="title">Uses of Interface<br>jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;<a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)">createHeaderDelegate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Obtain an instance of a <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.html
new file mode 100644
index 0000000..0d13abf
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/RuntimeDelegate.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.ext.RuntimeDelegate (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.ext.RuntimeDelegate (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.ext.RuntimeDelegate" class="title">Uses of Class<br>jakarta.ws.rs.ext.RuntimeDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> that return <a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#setInstance(jakarta.ws.rs.ext.RuntimeDelegate)">setInstance</a></span>&#8203;(<a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</code></th>
+<td class="colLast">
+<div class="block">Set the runtime delegate that will be used by JAX-RS classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptor.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptor.html
new file mode 100644
index 0000000..a2cb16d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptor.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.WriterInterceptor (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.WriterInterceptor (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptor.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.WriterInterceptor" class="title">Uses of Interface<br>jakarta.ws.rs.ext.WriterInterceptor</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.ext.WriterInterceptor</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptor.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptorContext.html b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptorContext.html
new file mode 100644
index 0000000..3363afd
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/class-use/WriterInterceptorContext.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.ext.WriterInterceptorContext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.ext.WriterInterceptorContext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.ext.WriterInterceptorContext" class="title">Uses of Interface<br>jakarta.ws.rs.ext.WriterInterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a> in <a href="../package-summary.html">jakarta.ws.rs.ext</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.ext</a> with parameters of type <a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptor.</span><code><span class="memberNameLink"><a href="../WriterInterceptor.html#aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/ext/package-summary.html
new file mode 100644
index 0000000..141a649
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/package-summary.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.ext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.ext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs.ext</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContextResolver.html" title="interface in jakarta.ws.rs.ext">ContextResolver</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supplies context information to resource classes and other providers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext">ExceptionMapper</a>&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext">InterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context shared by message body interceptors that can be used to wrap calls to
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a stream to a Java type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext">ParamConverter</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Defines a contract for a delegate responsible for converting between a <code>String</code> form of a message parameter
+ value and the corresponding custom Java type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext">ParamConverterProvider</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider of <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Providers.html" title="interface in jakarta.ws.rs.ext">Providers</a></th>
+<td class="colLast">
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptor</a></th>
+<td class="colLast">
+<div class="block">Interface for message body reader interceptors that wrap around calls to
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext">ReaderInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext">WriterInterceptor</a></th>
+<td class="colLast">
+<div class="block">Interface for message body writer interceptors that wrap around calls to
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext">WriterInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext">RuntimeDelegate</a></th>
+<td class="colLast">
+<div class="block">Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext">ParamConverter.Lazy</a></th>
+<td class="colLast">
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in jakarta.ws.rs"><code>default value</code></a> delegated to a <a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><code>parameter
+ converter</code></a> annotated with <code>@Lazy</code> annotation SHOULD occur only once the value is actually required (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Provider.html" title="annotation in jakarta.ws.rs.ext">Provider</a></th>
+<td class="colLast">
+<div class="block">Marks an implementation of an extension interface that should be discoverable by JAX-RS runtime during a provider
+ scanning phase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/ext/package-tree.html
new file mode 100644
index 0000000..5189c55
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/package-tree.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.ext Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.ext Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs.ext</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.ext.<a href="RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.ext.<a href="ContextResolver.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;E&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="InterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.ext.<a href="ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="ParamConverter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="Providers.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">Providers</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.ext.<a href="ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="Provider.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">Provider</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/ext/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/ext/package-use.html
new file mode 100644
index 0000000..20e520d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/ext/package-use.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs.ext (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs.ext (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs.ext" class="title">Uses of Package<br>jakarta.ws.rs.ext</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.ext</a> used by <a href="package-summary.html">jakarta.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ContextResolver.html#jakarta.ws.rs.ext">ContextResolver</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supplies context information to resource classes and other providers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ExceptionMapper.html#jakarta.ws.rs.ext">ExceptionMapper</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in jakarta.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/InterceptorContext.html#jakarta.ws.rs.ext">InterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context shared by message body interceptors that can be used to wrap calls to
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageBodyReader.html#jakarta.ws.rs.ext">MessageBodyReader</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a stream to a Java type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageBodyWriter.html#jakarta.ws.rs.ext">MessageBodyWriter</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ParamConverter.html#jakarta.ws.rs.ext">ParamConverter</a></th>
+<td class="colLast">
+<div class="block">Defines a contract for a delegate responsible for converting between a <code>String</code> form of a message parameter
+ value and the corresponding custom Java type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ReaderInterceptorContext.html#jakarta.ws.rs.ext">ReaderInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>ReaderInterceptor</code></a> to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeDelegate.html#jakarta.ws.rs.ext">RuntimeDelegate</a></th>
+<td class="colLast">
+<div class="block">Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeDelegate.HeaderDelegate.html#jakarta.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for converting between the String form of a HTTP header and
+ the corresponding JAX-RS type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInterceptorContext.html#jakarta.ws.rs.ext">WriterInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><code>WriterInterceptor</code></a> to intercept calls to
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], jakarta.ws.rs.core.MediaType, jakarta.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/package-summary.html
new file mode 100644
index 0000000..bdc6dff
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/package-summary.html
@@ -0,0 +1,477 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">High-level interfaces and annotations used to create RESTful service resources. For example:
+
+ <pre>
+ &#064;Path("widgets/{widgetid}")
+ &#064;Consumes("application/widgets+xml")
+ &#064;Produces("application/widgets+xml")
+ public class WidgetResource {
+
+     &#064;GET
+     public String getWidget(&#064;PathParam("widgetid") String id) {
+         return getWidgetAsXml(id);
+     }
+
+     &#064;PUT
+     public void updateWidget(&#064;PathParam("widgetid") String id,
+                              Source update) {
+         updateWidgetFromXml(id, update);
+     }
+
+     ...
+ }
+ </pre></div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Priorities.html" title="class in jakarta.ws.rs">Priorities</a></th>
+<td class="colLast">
+<div class="block">A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ <code>jakarta.annotation.Priority</code> class-level annotation value when used or applied by JAX-RS runtime.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeType.html" title="enum in jakarta.ws.rs">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BadRequestException.html" title="class in jakarta.ws.rs">BadRequestException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ForbiddenException.html" title="class in jakarta.ws.rs">ForbiddenException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by a client has been
+ <a href="core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="InternalServerErrorException.html" title="class in jakarta.ws.rs">InternalServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server
+ error</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotAcceptableException.html" title="class in jakarta.ws.rs">NotAcceptableException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is <a href="core/Response.Status.html#NOT_ACCEPTABLE"><code>not
+ acceptable</code></a> by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NotAllowedException.html" title="class in jakarta.ws.rs">NotAllowedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotAuthorizedException.html" title="class in jakarta.ws.rs">NotAuthorizedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following scenarios:
+ 
+ a client did not send the required authorization credentials to access the requested resource, i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NotFoundException.html" title="class in jakarta.ws.rs">NotFoundException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was <a href="core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotSupportedException.html" title="class in jakarta.ws.rs">NotSupportedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></th>
+<td class="colLast">
+<div class="block">A base JAX-RS runtime processing exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RedirectionException.html" title="class in jakarta.ws.rs">RedirectionException</a></th>
+<td class="colLast">
+<div class="block">A runtime application exception indicating a request redirection (HTTP <code>3xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceUnavailableException.html" title="class in jakarta.ws.rs">ServiceUnavailableException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ApplicationPath.html" title="annotation in jakarta.ws.rs">ApplicationPath</a></th>
+<td class="colLast">
+<div class="block">Identifies the application path that serves as the base URI for all resource URIs provided by
+ <a href="Path.html" title="annotation in jakarta.ws.rs"><code>Path</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="BeanParam.html" title="annotation in jakarta.ws.rs">BeanParam</a></th>
+<td class="colLast">
+<div class="block">The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConstrainedTo.html" title="annotation in jakarta.ws.rs">ConstrainedTo</a></th>
+<td class="colLast">
+<div class="block">Indicates the run-time context in which an annotated JAX-RS provider is applicable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Consumes.html" title="annotation in jakarta.ws.rs">Consumes</a></th>
+<td class="colLast">
+<div class="block">Defines the media types that the methods of a resource class or <a href="ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CookieParam.html" title="annotation in jakarta.ws.rs">CookieParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultValue.html" title="annotation in jakarta.ws.rs">DefaultValue</a></th>
+<td class="colLast">
+<div class="block">Defines the default value of request meta-data that is bound using one of the following annotations:
+ <a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>,
+ <a href="CookieParam.html" title="annotation in jakarta.ws.rs"><code>CookieParam</code></a>, <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>, or <a href="HeaderParam.html" title="annotation in jakarta.ws.rs"><code>HeaderParam</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DELETE.html" title="annotation in jakarta.ws.rs">DELETE</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Encoded.html" title="annotation in jakarta.ws.rs">Encoded</a></th>
+<td class="colLast">
+<div class="block">Disables automatic decoding of parameter values bound using <a href="QueryParam.html" title="annotation in jakarta.ws.rs"><code>QueryParam</code></a>, <a href="PathParam.html" title="annotation in jakarta.ws.rs"><code>PathParam</code></a>, <a href="FormParam.html" title="annotation in jakarta.ws.rs"><code>FormParam</code></a>
+ or <a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><code>MatrixParam</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="FormParam.html" title="annotation in jakarta.ws.rs">FormParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GET.html" title="annotation in jakarta.ws.rs">GET</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HEAD.html" title="annotation in jakarta.ws.rs">HEAD</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="HeaderParam.html" title="annotation in jakarta.ws.rs">HeaderParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean
+ property.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HttpMethod.html" title="annotation in jakarta.ws.rs">HttpMethod</a></th>
+<td class="colLast">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MatrixParam.html" title="annotation in jakarta.ws.rs">MatrixParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NameBinding.html" title="annotation in jakarta.ws.rs">NameBinding</a></th>
+<td class="colLast">
+<div class="block">Meta-annotation used to create name binding annotations for filters and interceptors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OPTIONS.html" title="annotation in jakarta.ws.rs">OPTIONS</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PATCH.html" title="annotation in jakarta.ws.rs">PATCH</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Path.html" title="annotation in jakarta.ws.rs">Path</a></th>
+<td class="colLast">
+<div class="block">Identifies the URI path that a resource class or class method will serve requests for.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathParam.html" title="annotation in jakarta.ws.rs">PathParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="POST.html" title="annotation in jakarta.ws.rs">POST</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Produces.html" title="annotation in jakarta.ws.rs">Produces</a></th>
+<td class="colLast">
+<div class="block">Defines the media type(s) that the methods of a resource class or <a href="ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> can
+ produce.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PUT.html" title="annotation in jakarta.ws.rs">PUT</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="QueryParam.html" title="annotation in jakarta.ws.rs">QueryParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class
+ bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/package-tree.html
new file mode 100644
index 0000000..0db60e3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/package-tree.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="Priorities.html" title="class in jakarta.ws.rs"><span class="typeNameLink">Priorities</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="ProcessingException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ProcessingException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="WebApplicationException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">WebApplicationException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="ClientErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ClientErrorException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="BadRequestException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">BadRequestException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="ForbiddenException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ForbiddenException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="NotAcceptableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="NotAllowedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAllowedException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="NotAuthorizedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="NotFoundException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotFoundException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="NotSupportedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotSupportedException</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.<a href="RedirectionException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">RedirectionException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="ServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServerErrorException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="InternalServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="ServiceUnavailableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="ApplicationPath.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="BeanParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">BeanParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="ConstrainedTo.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="Consumes.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Consumes</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="CookieParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">CookieParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="DefaultValue.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DefaultValue</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="DELETE.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DELETE</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="Encoded.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Encoded</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="FormParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">FormParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="GET.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">GET</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="HEAD.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HEAD</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="HeaderParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HeaderParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="HttpMethod.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HttpMethod</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="MatrixParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">MatrixParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="NameBinding.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">NameBinding</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="OPTIONS.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">OPTIONS</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="PATCH.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PATCH</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="Path.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Path</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="PathParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="POST.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">POST</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="Produces.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Produces</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="PUT.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PUT</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="QueryParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">QueryParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="RuntimeType.html" title="enum in jakarta.ws.rs"><span class="typeNameLink">RuntimeType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/package-use.html
new file mode 100644
index 0000000..ca268e3
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/package-use.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs" class="title">Uses of Package<br>jakarta.ws.rs</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs">jakarta.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.client">jakarta.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The JAX-RS client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.core">jakarta.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.ext">jakarta.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the JAX-RS API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs</a> used by <a href="package-summary.html">jakarta.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientErrorException.html#jakarta.ws.rs">ClientErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HttpMethod.html#jakarta.ws.rs">HttpMethod</a></th>
+<td class="colLast">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeType.html#jakarta.ws.rs">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerErrorException.html#jakarta.ws.rs">ServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#jakarta.ws.rs">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs</a> used by <a href="client/package-summary.html">jakarta.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ProcessingException.html#jakarta.ws.rs.client">ProcessingException</a></th>
+<td class="colLast">
+<div class="block">A base JAX-RS runtime processing exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs</a> used by <a href="core/package-summary.html">jakarta.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeType.html#jakarta.ws.rs.core">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of JAX-RS runtime types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#jakarta.ws.rs.core">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ext">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs</a> used by <a href="ext/package-summary.html">jakarta.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#jakarta.ws.rs.ext">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/InboundSseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/InboundSseEvent.html
new file mode 100644
index 0000000..16a3204
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/InboundSseEvent.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>InboundSseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InboundSseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InboundSseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface InboundSseEvent" class="title">Interface InboundSseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InboundSseEvent</span>
+extends <a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></pre>
+<div class="block">Inbound Server-sent event.
+ <p>
+ Used on the client side, when accepting incoming Server-sent events.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.jakarta.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;jakarta.ws.rs.sse.<a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the event is empty (i.e.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData()">readData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(jakarta.ws.rs.core.GenericType)">readData</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(java.lang.Class)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(java.lang.Class,jakarta.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+        <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.sse.<a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#getComment()">getComment</a>, <a href="SseEvent.html#getId()">getId</a>, <a href="SseEvent.html#getName()">getName</a>, <a href="SseEvent.html#getReconnectDelay()">getReconnectDelay</a>, <a href="SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">boolean&nbsp;isEmpty()</pre>
+<div class="block">Check if the event is empty (i.e. does not contain any data).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if current instance does not contain any data, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;readData()</pre>
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized into a string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original
+ cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Read event data as a given Java type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic event data type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - Java type to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original
+ cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(jakarta.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Read event data as a given generic type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic event data type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original
+ cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(java.lang.Class,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+               <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Read event data as a given Java type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic event data type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>messageType</code> - Java type to be used for event data de-serialization.</dd>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original
+ cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+               <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Read event data as a given generic type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic event data type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type to be used for event data de-serialization.</dd>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original
+ cause.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InboundSseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.Builder.html
new file mode 100644
index 0000000..384974c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.Builder.html
@@ -0,0 +1,505 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>OutboundSseEvent.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OutboundSseEvent.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface OutboundSseEvent.Builder" class="title">Interface OutboundSseEvent.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">OutboundSseEvent.Builder</span></pre>
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#comment(java.lang.String)">comment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</code></th>
+<td class="colLast">
+<div class="block">Set comment string associated with the event.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(jakarta.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(java.lang.Class,java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#id(java.lang.String)">id</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</code></th>
+<td class="colLast">
+<div class="block">Set the event id.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaType(jakarta.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#name(java.lang.String)">name</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Set event name.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reconnectDelay(long)">reconnectDelay</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="id(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>id</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;id&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</pre>
+<div class="block">Set the event id.
+ <p>
+ Will be send as a value of the SSE <code>"id"</code> field. This field is optional.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>id</code> - event id.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="name(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;name&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Set event name.
+ <p>
+ Will be send as a value of the SSE <code>"event"</code> field. This field is optional.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - event name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="reconnectDelay(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reconnectDelay</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;reconnectDelay&#8203;(long&nbsp;milliseconds)</pre>
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.
+ <p>
+ Will be send as a value of the SSE <code>"retry"</code> field. This field is optional.
+ <p>
+ Absence of a value of this field in an <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instance is indicated by
+ <a href="SseEvent.html#RECONNECT_NOT_SET"><code>SseEvent.RECONNECT_NOT_SET</code></a> value returned from <a href="SseEvent.html#getReconnectDelay()"><code>SseEvent.getReconnectDelay()</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>milliseconds</code> - reconnection delay in milliseconds. Negative values un-set the reconnection delay.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaType(jakarta.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mediaType</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;mediaType&#8203;(<a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set the <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.
+ <p>
+ This information is mandatory. The default value is <a href="../core/MediaType.html#TEXT_PLAIN"><code>MediaType.TEXT_PLAIN</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a> of event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>mediaType</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="comment(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>comment</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;comment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</pre>
+<div class="block">Set comment string associated with the event.
+ <p>
+ The comment will be serialized with the event, before event data are serialized. If the event does not contain any
+ data, a separate "event" that contains only the comment will be sent. This information is optional, provided the
+ event data are set.
+ <p>
+ Note that multiple invocations of this method result in a previous comment being replaced with a new one. To achieve
+ multi-line comments, a multi-line comment string has to be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comment</code> - comment string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(java.lang.Class,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and java type of event data.
+ <p>
+ Type information will be used for <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> lookup.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - java type of supplied data. Must not be <code>null</code>.</dd>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case either <code>type</code> or <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(jakarta.ws.rs.core.GenericType,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&nbsp;type,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and a generic java type of event data.
+ <p>
+ Type information will be used for <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> lookup.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type of supplied data. Must not be <code>null</code>.</dd>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case either <code>type</code> or <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and java type of event data.
+ <p>
+ This is a convenience method that derives the event data type information from the runtime type of the event data.
+ The supplied event data may be represented as <a href="../core/GenericEntity.html" title="class in jakarta.ws.rs.core"><code>GenericEntity</code></a>.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;build()</pre>
+<div class="block">Build <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a>.
+ <p>
+ There are two valid configurations:
+ <ul>
+ <li>if a <a href="#comment(java.lang.String)"><code>comment</code></a> is set, all other parameters are optional. If event
+ <a href="#data(java.lang.Class,java.lang.Object)"><code>data</code></a> and <a href="#mediaType(jakarta.ws.rs.core.MediaType)"><code>media type</code></a> is set, event data will
+ be serialized after the comment.</li>
+ <li>if a <a href="#comment(java.lang.String)"><code>comment</code></a> is not set, at least the event <a href="#data(java.lang.Class,java.lang.Object)"><code>data</code></a> must be set. All other parameters are optional.</li>
+ </ul></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - when called with invalid configuration (neither a comment nor event data are set).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.html
new file mode 100644
index 0000000..f00bc64
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/OutboundSseEvent.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>OutboundSseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OutboundSseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface OutboundSseEvent" class="title">Interface OutboundSseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">OutboundSseEvent</span>
+extends <a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></pre>
+<div class="block">Representation of a single outbound Server-sent event.
+ <p>
+ Used on the server side, when creating and sending an event to a client or when broadcasting.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.jakarta.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;jakarta.ws.rs.sse.<a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getData()">getData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event data.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericType()">getGenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get generic data type.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get data type.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.jakarta.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;jakarta.ws.rs.sse.<a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#getComment()">getComment</a>, <a href="SseEvent.html#getId()">getId</a>, <a href="SseEvent.html#getName()">getName</a>, <a href="SseEvent.html#getReconnectDelay()">getReconnectDelay</a>, <a href="SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getType()</pre>
+<div class="block">Get data type.
+ <p>
+ This information is used to select a proper <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for serializing the
+ <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>data type. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getGenericType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGenericType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getGenericType()</pre>
+<div class="block">Get generic data type.
+ <p>
+ This information is used to select a proper <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for serializing the
+ <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>generic data type. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.
+ <p>
+ This information is used to a select proper <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for serializing the
+ <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>data <a href="../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>MediaType</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getData()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getData()</pre>
+<div class="block">Get event data.
+ <p>
+ The event data, if specified, are serialized and sent as one or more SSE event <code>"data"</code> fields (depending on
+ the line breaks in the actual serialized data content). The data are serialized using an available
+ <a href="../ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><code>MessageBodyWriter</code></a> that is selected based on the event <a href="#getType()"><code>type</code></a>,
+ <a href="#getGenericType()"><code>getGenericType()</code></a> generic type} and <a href="#getMediaType()"><code>getMediaType()</code></a> media type}.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/Sse.html b/apidocs/3.0.0/jakarta/ws/rs/sse/Sse.html
new file mode 100644
index 0000000..e4a80f1
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/Sse.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Sse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Sse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":18,"i2":18,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface Sse" class="title">Interface Sse</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Sse</span></pre>
+<div class="block">Server-side entry point for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a>.
+ <p>
+ Instance of this interface can be injected into a field or as a parameter of a method or a constructor. Also, the
+ instance is thread safe, meaning that it can be shared and its method invoked from different threads without causing
+ inconsistent internal state.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBroadcaster()">newBroadcaster</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEvent(java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>default <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEvent(java.lang.String,java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEventBuilder()">newEventBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new outbound event builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newEventBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEventBuilder</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;newEventBuilder()</pre>
+<div class="block">Get a new outbound event builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>SSE outbound event builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="newEvent(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEvent</h4>
+<pre class="methodSignature">default&nbsp;<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;newEvent&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</pre>
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.
+ <p>
+ The data can be string only and must not be null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - event data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <code>OutboundSseEvent</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="newEvent(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEvent</h4>
+<pre class="methodSignature">default&nbsp;<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;newEvent&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</pre>
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - event name. (see <a href="SseEvent.html#getName()"><code>SseEvent.getName()</code></a>).</dd>
+<dd><code>data</code> - event data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <code>OutboundSseEvent</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when name or data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="newBroadcaster()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>newBroadcaster</h4>
+<pre class="methodSignature"><a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a>&nbsp;newBroadcaster()</pre>
+<div class="block">Get a new Server-sent event broadcaster.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new Server-sent event broadcaster instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/SseBroadcaster.html b/apidocs/3.0.0/jakarta/ws/rs/sse/SseBroadcaster.html
new file mode 100644
index 0000000..ab0bd42
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/SseBroadcaster.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SseBroadcaster (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseBroadcaster (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseBroadcaster.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface SseBroadcaster" class="title">Interface SseBroadcaster</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseBroadcaster</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Server-Sent events broadcasting facility.
+ <p>
+ Server broadcaster can be used to manage multiple <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>server sinks</code></a>. It enables sending events to all
+ registered event outputs and provides facility to effectively handle exceptions and closures of individual registered
+ event outputs.
+ <p>
+ Instance of this interface is thread safe, meaning that it can be shared and its method invoked from different
+ threads without causing inconsistent internal state.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcast(jakarta.ws.rs.sse.OutboundSseEvent)">broadcast</a></span>&#8203;(<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Publish an SSE event to all registered <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the broadcaster and all registered <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(java.util.function.Consumer)">onClose</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when this SseBroadcaster closes a given event <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> or
+ tries to write to a given <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> that is already closed (either by client closing the connection
+ or by calling <a href="SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(java.util.function.BiConsumer)">onError</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when an exception is thrown by a given <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>
+ when this SseBroadcaster tries to write to it or close it.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(jakarta.ws.rs.sse.SseEventSink)">register</a></span>&#8203;(<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</code></th>
+<td class="colLast">
+<div class="block">Register provided <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onError(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">void&nbsp;onError&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</pre>
+<div class="block">Register a listener, which will be called when an exception is thrown by a given <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>
+ when this SseBroadcaster tries to write to it or close it.
+ <p>
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The
+ <code>SseBroadcaster</code> implementation is optimized to efficiently handle small amounts of concurrent listener
+ registrations and removals and large amounts of registered listener notifications.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onError</code> - bi-consumer, taking two parameters: <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>, which is the source of the error and the
+ actual <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">void&nbsp;onClose&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</pre>
+<div class="block">Register a listener, which will be called when this SseBroadcaster closes a given event <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> or
+ tries to write to a given <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> that is already closed (either by client closing the connection
+ or by calling <a href="SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.
+ <p>
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The
+ <code>SseBroadcaster</code> implementation is optimized to efficiently handle small amounts of concurrent listener
+ registrations and removals and large amounts of registered listener notifications.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onClose</code> - consumer taking single parameter, a <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>, which was closed.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(jakarta.ws.rs.sse.SseEventSink)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</pre>
+<div class="block">Register provided <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sseEventSink</code> - to be registered.</dd>
+</dl>
+</li>
+</ul>
+<a id="broadcast(jakarta.ws.rs.sse.OutboundSseEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcast</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;&nbsp;broadcast&#8203;(<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</pre>
+<div class="block">Publish an SSE event to all registered <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - SSE event to be published.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>completion stage that completes when the event has been broadcast to all registered event sinks.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block">Close the broadcaster and all registered <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.
+ <p>
+ Any other resources associated with the <a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a> should be released.
+ <p>
+ Subsequent calls have no effect and are ignored. Once the <a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a> is closed,
+ invoking any other method on the broadcaster instance would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>
+ being thrown.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseBroadcaster.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/SseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEvent.html
new file mode 100644
index 0000000..b944d3e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEvent.html
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface SseEvent" class="title">Interface SseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></code>, <code><a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEvent</span></pre>
+<div class="block">Base Server Sent Event definition.
+ <p>
+ This interface provides basic properties of the Server Sent Event, namely ID, Name, and Comment. It also provides
+ access to the Reconnect delay property.
+ <p>
+ <code>SseEvent</code> is extended by another two interfaces, <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a>. The
+ main difference is in how are instances created and how the stored data can be accessed (or provided).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></span></code></th>
+<td class="colLast">
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComment()">getComment</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a comment string that accompanies the event.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event name.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReconnectDelay()">getReconnectDelay</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReconnectDelaySet()">isReconnectDelaySet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the connection retry time has been set in the event.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="RECONNECT_NOT_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RECONNECT_NOT_SET</h4>
+<pre>static final&nbsp;long RECONNECT_NOT_SET</pre>
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.sse.SseEvent.RECONNECT_NOT_SET">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getId()</pre>
+<div class="block">Get event identifier.
+ <p>
+ Contains value of SSE <code>"id"</code> field. This field is optional. Method may return <code>null</code>, if the event
+ identifier is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event id.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block">Get event name.
+ <p>
+ Contains value of SSE <code>"event"</code> field. This field is optional. Method may return <code>null</code>, if the event
+ name is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event name, or <code>null</code> if not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getComment()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComment</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getComment()</pre>
+<div class="block">Get a comment string that accompanies the event.
+ <p>
+ Contains value of the comment associated with SSE event. This field is optional. Method may return <code>null</code>, if
+ the event comment is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>comment associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReconnectDelay()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReconnectDelay</h4>
+<pre class="methodSignature">long&nbsp;getReconnectDelay()</pre>
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.
+ <p>
+ Contains value of SSE <code>"retry"</code> field. This field is optional. Method returns <a href="#RECONNECT_NOT_SET"><code>RECONNECT_NOT_SET</code></a> if no
+ value has been set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reconnection delay in milliseconds or <a href="#RECONNECT_NOT_SET"><code>RECONNECT_NOT_SET</code></a> if no value has been set.</dd>
+</dl>
+</li>
+</ul>
+<a id="isReconnectDelaySet()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isReconnectDelaySet</h4>
+<pre class="methodSignature">boolean&nbsp;isReconnectDelaySet()</pre>
+<div class="block">Check if the connection retry time has been set in the event.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if new reconnection delay has been set in the event, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSink.html b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSink.html
new file mode 100644
index 0000000..3b538a4
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSink.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SseEventSink (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSink (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSink.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface SseEventSink" class="title">Interface SseEventSink</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEventSink</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Outbound Server-Sent Events stream.
+ <p>
+ The instance of <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> can be only acquired by injection of a resource method parameter:
+
+ <pre>
+ &#64;GET
+ &#64;Path("eventStream")
+ &#64;Produces(MediaType.SERVER_SENT_EVENTS)
+ public void eventStream(@Context SseEventSink eventSink) {
+     // ...
+ }
+ </pre>
+
+ The injected instance is then considered as a return type, so the resource method doesn't return anything, similarly
+ as in server-side async processing.
+ <p>
+ The underlying client connection is kept open and the application code is able to send events. A server-side instance
+ implementing the interface corresponds exactly to a single client HTTP connection.
+ <p>
+ The injected instance is thread safe.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isClosed()">isClosed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the stream has been closed already.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(jakarta.ws.rs.sse.OutboundSseEvent)">send</a></span>&#8203;(<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isClosed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClosed</h4>
+<pre class="methodSignature">boolean&nbsp;isClosed()</pre>
+<div class="block">Check if the stream has been closed already.
+ <p>
+ Please note that the client connection represented by this <code>SseServerSink</code> can be closed by the client side
+ when a client decides to close connection and disconnect from the server.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when closed, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="send(jakarta.ws.rs.sse.OutboundSseEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;&nbsp;send&#8203;(<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</pre>
+<div class="block">Send an outbound Server-sent event to this sink.
+ <p>
+ Event will be serialized and sent to the client.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - event to be written.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>completion stage that completes when the event has been sent. If there is a problem during sending of an
+ event, completion stage will be completed exceptionally.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block">Close the <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.
+ <p>
+ Subsequent calls have no effect and are ignored. Once the <a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> is closed, invoking any method other
+ than this one and <a href="#isClosed()"><code>isClosed()</code></a> would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSink.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.Builder.html
new file mode 100644
index 0000000..9b5b80c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.Builder.html
@@ -0,0 +1,444 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SseEventSource.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSource.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Class SseEventSource.Builder" class="title">Class SseEventSource.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>jakarta.ws.rs.sse.SseEventSource.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">SseEventSource.Builder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">JAX-RS <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.
+ <p>
+ Event source builder provides methods that let you conveniently configure and subsequently build a new
+ <code>SseEventSource</code> instance. You can obtain a new event source builder instance using a static
+ <a href="SseEventSource.html#target(jakarta.ws.rs.client.WebTarget)"><code>SseEventSource.target(endpoint)</code></a> factory method.
+ <p>
+ For example:
+
+ <pre>
+ SseEventSource es = SseEventSource.target(endpoint)
+         .reconnectingEvery(5, SECONDS)
+         .build();
+ es.register(System.out::println);
+ es.open();
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation to be returned from
+ <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery</a></span>&#8203;(long&nbsp;delay,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation to be returned from
+ <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#jakarta.ws.rs.sse.SseEventSource.Builder.JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>protected&nbsp;Builder()</pre>
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="target(jakarta.ws.rs.client.WebTarget)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature">protected abstract&nbsp;<a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a>&nbsp;target&#8203;(<a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</pre>
+</li>
+</ul>
+<a id="reconnectingEvery(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reconnectingEvery</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a>&nbsp;reconnectingEvery&#8203;(long&nbsp;delay,
+                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the initial reconnect delay to be used by the event source.
+ <p>
+ Note that this value may be later overridden by the SSE endpoint using either a <code>retry</code> SSE event field or
+ <code>HTTP 503 + <a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> mechanism as described in the
+ <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> javadoc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>delay</code> - the default time to wait before attempting to recover from a connection loss.</dd>
+<dd><code>unit</code> - time unit of the reconnect delay parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated event source builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a>&nbsp;build()</pre>
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a>.
+ <p>
+ The returned event source is ready, but not <a href="SseEventSource.html#open()"><code>connected</code></a> to the SSE endpoint. It is
+ expected that you will manually invoke its <a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a> method once you are ready to start receiving SSE events.
+ In case you want to build an event source instance that is already connected to the SSE endpoint, use the event
+ source builder <a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a> method instead.
+ <p>
+ Once the event source is open, the incoming events are processed by the event source in an asynchronous task that
+ runs in an internal single-threaded <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>scheduled executor service</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new event source instance, ready to be connected to the SSE endpoint.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.html b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.html
new file mode 100644
index 0000000..e25f59e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/SseEventSource.html
@@ -0,0 +1,538 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>SseEventSource (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSource (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":1};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">jakarta.ws.rs.sse</a></div>
+<h2 title="Interface SseEventSource" class="title">Interface SseEventSource</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEventSource</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.
+ <p>
+ SSE event source instances of this class are thread safe. To build a new instance, you can use the
+ <a href="#target(jakarta.ws.rs.client.WebTarget)"><code>SseEventSource.target(endpoint)</code></a> factory method to get a new event
+ source builder that can be further customised and eventually used to create a new SSE event source.
+ <p>
+ Once a <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> is created, it can be used to <a href="#open()"><code>open a connection</code></a> to the associated
+ <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a>. After establishing the connection, the event source starts processing any incoming
+ inbound events. Whenever a new event is received, an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true#accept(T)" title="class or interface in java.util.function" class="externalLink"><code>Consumer&lt;InboundSseEvent&gt;#accept(InboundSseEvent)</code></a> method is invoked on any registered event consumers.
+ <h2>Reconnect support</h2>
+ <p>
+ The <code>SseEventSource</code> supports automated recuperation from a connection loss, including
+ negotiation of delivery of any missed events based on the last received  SSE event <code>id</code> field value, provided
+ this field is set by the server and the negotiation facility is supported by the server. In case of a connection loss,
+ the last received SSE event <code>id</code> field value is sent in the
+ <code><a href="../core/HttpHeaders.html#LAST_EVENT_ID_HEADER">"Last-Event-ID"</a></code> HTTP
+ request header as part of a new connection request sent to the SSE endpoint. Upon a receipt of such reconnect request, the SSE
+ endpoint that supports this negotiation facility is expected to replay all missed events. Note however, that this is a
+ best-effort mechanism which does not provide any guaranty that all events would be delivered without a loss. You should
+ therefore not rely on receiving every single event and design your client application code accordingly.
+ <p>
+ By default, when a connection to the SSE endpoint is lost, the event source will wait 500&nbsp;ms
+ before attempting to reconnect to the SSE endpoint. The SSE endpoint can however control the client-side retry delay
+ by including a special <code>retry</code> field value in any sent event. JAX-RS <code>SseEventSource</code> tracks any
+ received SSE event <code>retry</code> field values set by the endpoint and adjusts the reconnect delay accordingly,
+ using the last received <code>retry</code> field value as the reconnect delay.
+ <p>
+ In addition to handling the standard connection loss failures, JAX-RS <code>SseEventSource</code> behaves differently to various
+ HTTP response status codes and headers:
+ <ul>
+ <li>200 - with <code><a href="../core/HttpHeaders.html#CONTENT_TYPE">"Content-Type"</a></code> header of "text/event-stream": This is normal
+ operation. <code>onEvent</code> is invoked for each event.  <code>onComplete</code> is invoked when there are no more
+ events. <code>onError</code> is invoked only if an unrecoverable error occurs during processing.</li>
+ <li>200 - with unsupported or missing <code><a href="../core/HttpHeaders.html#CONTENT_TYPE">"Content-Type"</a></code> header: This is an
+ error condition. <code>onError</code> is invoked.</li>
+ <li>204 - This indicates that server has no events to send. Only <code>onComplete</code> is invoked.</li>
+ <li>503 - with <code><a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> header set to a valid value: This indicates
+ that the server is unavailable, but that the client should reconnect later. No consumers are invoked unless the client
+ event source is closed, prior to reconnecting (resulting in <code>onComplete</code> invocation). After the specified
+ delay, the client should automatically attempt to reconnect which will result in a new response.</li>
+ <li>503 - with invalid or missing <code><a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> header: This is an error
+ condition. <code>onError</code> is invoked.</li>
+ <li>Any other status code: This is an error condition. <code>onError</code> is invoked.</li>
+ </ul>
+ <p>
+ In the case of an error condition response, the <code>Throwable</code> passed to the <code>onError</code> consumer
+ <i>should</i> be a WebApplicationException containing the invalid <code>Response</code> object.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">JAX-RS <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close this event source.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(long,java.util.concurrent.TimeUnit)">close</a></span>&#8203;(long&nbsp;timeout,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Close this event source and wait for the internal event processing task to complete for up to the specified amount of
+ wait time.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOpen()">isOpen</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if this event source instance has already been <a href="#open()"><code>opened</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open()">open</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Open the connection to the supplied SSE underlying <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>events</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</code></th>
+<td class="colLast">
+<div class="block">Register a <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer,java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="register(java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</pre>
+<div class="block">Register a <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.
+ <p>
+ Given consumer is invoked once per each received event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the provided parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.util.function.Consumer,java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</pre>
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.
+ <p>
+ Event consumer is invoked once per each received event, <code>Throwable</code> consumer is invoked invoked upon a
+ unrecoverable error encountered by a <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dd><code>onError</code> - error consumer.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the any of the provided parameters is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</pre>
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.
+ <p>
+ Event consumer is invoked once per each received event, <code>Throwable</code> consumer is invoked invoked upon a
+ unrecoverable error encountered by a <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a>, onComplete callback is invoked after a successful
+ connection and when there are no further events to be received. Note that the onComplete callback will not be
+ invoked if the onError callback has been invoked.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dd><code>onError</code> - error consumer.</dd>
+<dd><code>onComplete</code> - onComplete handler.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the any of the provided parameters is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(jakarta.ws.rs.client.WebTarget)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature">static&nbsp;<a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a>&nbsp;target&#8203;(<a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</pre>
+<div class="block">Create a new <a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpoint</code> - SSE streaming endpoint. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a builder of a new event source instance pointing at the specified SSE streaming endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied web target is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="open()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre class="methodSignature">void&nbsp;open()</pre>
+<div class="block">Open the connection to the supplied SSE underlying <a href="../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>events</code></a>.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the event source has already been opened earlier.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOpen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre class="methodSignature">boolean&nbsp;isOpen()</pre>
+<div class="block">Check if this event source instance has already been <a href="#open()"><code>opened</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this event source is open, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">default&nbsp;void&nbsp;close()</pre>
+<div class="block">Close this event source.
+ <p>
+ The method will wait up to 5 seconds for the internal event processing tasks to complete.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="close(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">boolean&nbsp;close&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Close this event source and wait for the internal event processing task to complete for up to the specified amount of
+ wait time.
+ <p>
+ The method blocks until the event processing task has completed execution after a shutdown request, or until the
+ timeout occurs, or the current thread is interrupted, whichever happens first.
+ <p>
+ In case the waiting for the event processing task has been interrupted, this method restores the
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupted()" title="class or interface in java.lang" class="externalLink"><code>interrupt</code></a> flag on the thread before returning <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this executor terminated and <code>false</code> if the timeout elapsed before termination or the
+ termination was interrupted.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/InboundSseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/InboundSseEvent.html
new file mode 100644
index 0000000..7d795db
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/InboundSseEvent.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.InboundSseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.InboundSseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.InboundSseEvent" class="title">Uses of Interface<br>jakarta.ws.rs.sse.InboundSseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">jakarta.ws.rs.sse</a> with type arguments of type <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</code></th>
+<td class="colLast">
+<div class="block">Register a <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.Builder.html
new file mode 100644
index 0000000..c54655d
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.Builder.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent.Builder" class="title">Uses of Interface<br>jakarta.ws.rs.sse.OutboundSseEvent.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#comment(java.lang.String)">comment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</code></th>
+<td class="colLast">
+<div class="block">Set comment string associated with the event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(jakarta.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../../core/GenericType.html" title="class in jakarta.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(java.lang.Class,java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#id(java.lang.String)">id</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</code></th>
+<td class="colLast">
+<div class="block">Set the event id.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#mediaType(jakarta.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../../core/MediaType.html" title="class in jakarta.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#name(java.lang.String)">name</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Set event name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEventBuilder()">newEventBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new outbound event builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#reconnectDelay(long)">reconnectDelay</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.html
new file mode 100644
index 0000000..4311c22
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/OutboundSseEvent.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.OutboundSseEvent" class="title">Uses of Interface<br>jakarta.ws.rs.sse.OutboundSseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEvent(java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEvent(java.lang.String,java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> with parameters of type <a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#broadcast(jakarta.ws.rs.sse.OutboundSseEvent)">broadcast</a></span>&#8203;(<a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Publish an SSE event to all registered <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSink.</span><code><span class="memberNameLink"><a href="../SseEventSink.html#send(jakarta.ws.rs.sse.OutboundSseEvent)">send</a></span>&#8203;(<a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/Sse.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/Sse.html
new file mode 100644
index 0000000..9e82a45
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/Sse.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.Sse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.Sse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Sse.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.Sse" class="title">Uses of Interface<br>jakarta.ws.rs.sse.Sse</h2>
+</div>
+<div class="classUseContainer">No usage of jakarta.ws.rs.sse.Sse</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Sse.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseBroadcaster.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseBroadcaster.html
new file mode 100644
index 0000000..fc39d3c
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseBroadcaster.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.SseBroadcaster (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.SseBroadcaster (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.SseBroadcaster" class="title">Uses of Interface<br>jakarta.ws.rs.sse.SseBroadcaster</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newBroadcaster()">newBroadcaster</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEvent.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEvent.html
new file mode 100644
index 0000000..0c65f34
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEvent.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.SseEvent (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.SseEvent (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.SseEvent" class="title">Uses of Interface<br>jakarta.ws.rs.sse.SseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></span></code></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></span></code></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEvent.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSink.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSink.html
new file mode 100644
index 0000000..35ffc66
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSink.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.SseEventSink (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.SseEventSink (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.SseEventSink" class="title">Uses of Interface<br>jakarta.ws.rs.sse.SseEventSink</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> with parameters of type <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#register(jakarta.ws.rs.sse.SseEventSink)">register</a></span>&#8203;(<a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</code></th>
+<td class="colLast">
+<div class="block">Register provided <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">jakarta.ws.rs.sse</a> with type arguments of type <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#onClose(java.util.function.Consumer)">onClose</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when this SseBroadcaster closes a given event <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> or
+ tries to write to a given <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a> that is already closed (either by client closing the connection
+ or by calling <a href="../SseEventSink.html#close()"><code>close()</code></a> on the server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#onError(java.util.function.BiConsumer)">onError</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when an exception is thrown by a given <a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSink</code></a>
+ when this SseBroadcaster tries to write to it or close it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSink.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html
new file mode 100644
index 0000000..869fc47
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Class jakarta.ws.rs.sse.SseEventSource.Builder (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class jakarta.ws.rs.sse.SseEventSource.Builder (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class jakarta.ws.rs.sse.SseEventSource.Builder" class="title">Uses of Class<br>jakarta.ws.rs.sse.SseEventSource.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery</a></span>&#8203;(long&nbsp;delay,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#target(jakarta.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.html b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.html
new file mode 100644
index 0000000..255f5cb
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/class-use/SseEventSource.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Interface jakarta.ws.rs.sse.SseEventSource (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface jakarta.ws.rs.sse.SseEventSource (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface jakarta.ws.rs.sse.SseEventSource" class="title">Uses of Interface<br>jakarta.ws.rs.sse.SseEventSource</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a> in <a href="../package-summary.html">jakarta.ws.rs.sse</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">jakarta.ws.rs.sse</a> that return <a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../../client/WebTarget.html" title="interface in jakarta.ws.rs.client"><code>web target</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.html" title="interface in jakarta.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/package-summary.html b/apidocs/3.0.0/jakarta/ws/rs/sse/package-summary.html
new file mode 100644
index 0000000..687cc3e
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/package-summary.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.sse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.sse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;jakarta.ws.rs.sse</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Server-Sent Events related API.
+
+ This package provides support for providing event streams from the server and also for processing then on the client
+ side.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse">InboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Sse.html" title="interface in jakarta.ws.rs.sse">Sse</a></th>
+<td class="colLast">
+<div class="block">Server-side entry point for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse">SseBroadcaster</a></th>
+<td class="colLast">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SseEvent.html" title="interface in jakarta.ws.rs.sse">SseEvent</a></th>
+<td class="colLast">
+<div class="block">Base Server Sent Event definition.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse">SseEventSink</a></th>
+<td class="colLast">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse">SseEventSource</a></th>
+<td class="colLast">
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse">SseEventSource.Builder</a></th>
+<td class="colLast">
+<div class="block">JAX-RS <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/package-tree.html b/apidocs/3.0.0/jakarta/ws/rs/sse/package-tree.html
new file mode 100644
index 0000000..0716e17
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/package-tree.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs.sse Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="jakarta.ws.rs.sse Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package jakarta.ws.rs.sse</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.sse.<a href="SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">AutoCloseable</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.sse.<a href="SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="SseEventSink.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.sse.<a href="OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="Sse.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">Sse</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="SseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.sse.<a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jakarta/ws/rs/sse/package-use.html b/apidocs/3.0.0/jakarta/ws/rs/sse/package-use.html
new file mode 100644
index 0000000..d09ed29
--- /dev/null
+++ b/apidocs/3.0.0/jakarta/ws/rs/sse/package-use.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Uses of Package jakarta.ws.rs.sse (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package jakarta.ws.rs.sse (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package jakarta.ws.rs.sse" class="title">Uses of Package<br>jakarta.ws.rs.sse</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">jakarta.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#jakarta.ws.rs.sse">jakarta.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.sse">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">jakarta.ws.rs.sse</a> used by <a href="package-summary.html">jakarta.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/InboundSseEvent.html#jakarta.ws.rs.sse">InboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/OutboundSseEvent.html#jakarta.ws.rs.sse">OutboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/OutboundSseEvent.Builder.html#jakarta.ws.rs.sse">OutboundSseEvent.Builder</a></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseBroadcaster.html#jakarta.ws.rs.sse">SseBroadcaster</a></th>
+<td class="colLast">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEvent.html#jakarta.ws.rs.sse">SseEvent</a></th>
+<td class="colLast">
+<div class="block">Base Server Sent Event definition.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSink.html#jakarta.ws.rs.sse">SseEventSink</a></th>
+<td class="colLast">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSource.html#jakarta.ws.rs.sse">SseEventSource</a></th>
+<td class="colLast">
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSource.Builder.html#jakarta.ws.rs.sse">SseEventSource.Builder</a></th>
+<td class="colLast">
+<div class="block">JAX-RS <a href="SseEventSource.html" title="interface in jakarta.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="../../../../resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/jquery/external/jquery/jquery.js b/apidocs/3.0.0/jquery/external/jquery/jquery.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/3.0.0/jquery/external/jquery/jquery.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png b/apidocs/3.0.0/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000..ca17cb7
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_flat_75_ffffff_40x100.png b/apidocs/3.0.0/jquery/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000..e6a4176
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_flat_75_ffffff_40x100.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png b/apidocs/3.0.0/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 0000000..0a084fd
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_glass_65_ffffff_1x400.png b/apidocs/3.0.0/jquery/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000..5b48209
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_glass_75_dadada_1x400.png b/apidocs/3.0.0/jquery/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 0000000..820ef7b
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_glass_75_dadada_1x400.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png b/apidocs/3.0.0/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 0000000..2677049
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_glass_95_fef1ec_1x400.png b/apidocs/3.0.0/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..671bc6b
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/apidocs/3.0.0/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 0000000..368044d
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-icons_222222_256x240.png b/apidocs/3.0.0/jquery/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000..e9c8e16
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-icons_2e83ff_256x240.png b/apidocs/3.0.0/jquery/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..f2bf838
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-icons_454545_256x240.png b/apidocs/3.0.0/jquery/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000..d6169e8
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-icons_454545_256x240.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-icons_888888_256x240.png b/apidocs/3.0.0/jquery/images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000..d3e6e02
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-icons_888888_256x240.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/images/ui-icons_cd0a0a_256x240.png b/apidocs/3.0.0/jquery/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..4937018
--- /dev/null
+++ b/apidocs/3.0.0/jquery/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/apidocs/3.0.0/jquery/jquery-3.3.1.js b/apidocs/3.0.0/jquery/jquery-3.3.1.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-3.3.1.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/3.0.0/jquery/jquery-migrate-3.0.1.js b/apidocs/3.0.0/jquery/jquery-migrate-3.0.1.js
new file mode 100644
index 0000000..6c1d4ff
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-migrate-3.0.1.js
@@ -0,0 +1,628 @@
+/*!
+ * jQuery Migrate - v3.0.1 - 2017-09-26
+ * Copyright jQuery Foundation and other contributors
+ */
+;( function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define( [ "jquery" ], window, factory );
+	} else if ( typeof module === "object" && module.exports ) {
+
+		// Node/CommonJS
+		// eslint-disable-next-line no-undef
+		module.exports = factory( require( "jquery" ), window );
+	} else {
+
+		// Browser globals
+		factory( jQuery, window );
+	}
+} )( function( jQuery, window ) {
+"use strict";
+
+
+jQuery.migrateVersion = "3.0.1";
+
+jQuery.migrateMute = true;
+
+/* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
+
+( function() {
+
+	var rbadVersions = /^[12]\./;
+
+	// Support: IE9 only
+	// IE9 only creates console object when dev tools are first opened
+	// IE9 console is a host object, callable but doesn't have .apply()
+	if ( !window.console || !window.console.log ) {
+		return;
+	}
+
+	// Need jQuery 3.0.0+ and no older Migrate loaded
+	if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
+		window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+	}
+	if ( jQuery.migrateWarnings ) {
+		window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+	}
+
+	// Show a message on the console so devs know we're active
+	window.console.log( "JQMIGRATE: Migrate is installed" +
+		( jQuery.migrateMute ? "" : " with logging active" ) +
+		", version " + jQuery.migrateVersion );
+
+} )();
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+	jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+	warnedAbout = {};
+	jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg ) {
+	var console = window.console;
+	if ( !warnedAbout[ msg ] ) {
+		warnedAbout[ msg ] = true;
+		jQuery.migrateWarnings.push( msg );
+		if ( console && console.warn && !jQuery.migrateMute ) {
+			console.warn( "JQMIGRATE: " + msg );
+			if ( jQuery.migrateTrace && console.trace ) {
+				console.trace();
+			}
+		}
+	}
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+	Object.defineProperty( obj, prop, {
+		configurable: true,
+		enumerable: true,
+		get: function() {
+			migrateWarn( msg );
+			return value;
+		},
+		set: function( newValue ) {
+			migrateWarn( msg );
+			value = newValue;
+		}
+	} );
+}
+
+function migrateWarnFunc( obj, prop, newFunc, msg ) {
+	obj[ prop ] = function() {
+		migrateWarn( msg );
+		return newFunc.apply( this, arguments );
+	};
+}
+
+if ( window.document.compatMode === "BackCompat" ) {
+
+	// JQuery has never supported or tested Quirks Mode
+	migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var oldInit = jQuery.fn.init,
+	oldIsNumeric = jQuery.isNumeric,
+	oldFind = jQuery.find,
+	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
+	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+
+jQuery.fn.init = function( arg1 ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	if ( typeof arg1 === "string" && arg1 === "#" ) {
+
+		// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
+		migrateWarn( "jQuery( '#' ) is not a valid selector" );
+		args[ 0 ] = [];
+	}
+
+	return oldInit.apply( this, args );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.find = function( selector ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	// Support: PhantomJS 1.x
+	// String#match fails to match when used with a //g RegExp, only on some strings
+	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
+
+		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
+		// First see if qS thinks it's a valid selector, if so avoid a false positive
+		try {
+			window.document.querySelector( selector );
+		} catch ( err1 ) {
+
+			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
+			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
+				return "[" + attr + op + "\"" + value + "\"]";
+			} );
+
+			// If the regexp *may* have created an invalid selector, don't update it
+			// Note that there may be false alarms if selector uses jQuery extensions
+			try {
+				window.document.querySelector( selector );
+				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
+				args[ 0 ] = selector;
+			} catch ( err2 ) {
+				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
+			}
+		}
+	}
+
+	return oldFind.apply( this, args );
+};
+
+// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
+var findProp;
+for ( findProp in oldFind ) {
+	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
+		jQuery.find[ findProp ] = oldFind[ findProp ];
+	}
+}
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	migrateWarn( "jQuery.fn.size() is deprecated and removed; use the .length property" );
+	return this.length;
+};
+
+jQuery.parseJSON = function() {
+	migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
+	return JSON.parse.apply( null, arguments );
+};
+
+jQuery.isNumeric = function( val ) {
+
+	// The jQuery 2.2.3 implementation of isNumeric
+	function isNumeric2( obj ) {
+		var realStringObj = obj && obj.toString();
+		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+	}
+
+	var newValue = oldIsNumeric( val ),
+		oldValue = isNumeric2( val );
+
+	if ( newValue !== oldValue ) {
+		migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
+	}
+
+	return oldValue;
+};
+
+migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+	"jQuery.holdReady is deprecated" );
+
+migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
+	"jQuery.unique is deprecated; use jQuery.uniqueSort" );
+
+// Now jQuery.expr.pseudos is the standard incantation
+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
+	"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
+	"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
+
+
+var oldAjax = jQuery.ajax;
+
+jQuery.ajax = function( ) {
+	var jQXHR = oldAjax.apply( this, arguments );
+
+	// Be sure we got a jQXHR (e.g., not sync)
+	if ( jQXHR.promise ) {
+		migrateWarnFunc( jQXHR, "success", jQXHR.done,
+			"jQXHR.success is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "error", jQXHR.fail,
+			"jQXHR.error is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "complete", jQXHR.always,
+			"jQXHR.complete is deprecated and removed" );
+	}
+
+	return jQXHR;
+};
+
+
+var oldRemoveAttr = jQuery.fn.removeAttr,
+	oldToggleClass = jQuery.fn.toggleClass,
+	rmatchNonSpace = /\S+/g;
+
+jQuery.fn.removeAttr = function( name ) {
+	var self = this;
+
+	jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
+		if ( jQuery.expr.match.bool.test( attr ) ) {
+			migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
+			self.prop( attr, false );
+		}
+	} );
+
+	return oldRemoveAttr.apply( this, arguments );
+};
+
+jQuery.fn.toggleClass = function( state ) {
+
+	// Only deprecating no-args or single boolean arg
+	if ( state !== undefined && typeof state !== "boolean" ) {
+		return oldToggleClass.apply( this, arguments );
+	}
+
+	migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
+
+	// Toggle entire class name of each element
+	return this.each( function() {
+		var className = this.getAttribute && this.getAttribute( "class" ) || "";
+
+		if ( className ) {
+			jQuery.data( this, "__className__", className );
+		}
+
+		// If the element has a class name or if we're passed `false`,
+		// then remove the whole classname (if there was one, the above saved it).
+		// Otherwise bring back whatever was previously saved (if anything),
+		// falling back to the empty string if nothing was stored.
+		if ( this.setAttribute ) {
+			this.setAttribute( "class",
+				className || state === false ?
+				"" :
+				jQuery.data( this, "__className__" ) || ""
+			);
+		}
+	} );
+};
+
+
+var internalSwapCall = false;
+
+// If this version of jQuery has .swap(), don't false-alarm on internal uses
+if ( jQuery.swap ) {
+	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
+		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
+
+		if ( oldHook ) {
+			jQuery.cssHooks[ name ].get = function() {
+				var ret;
+
+				internalSwapCall = true;
+				ret = oldHook.apply( this, arguments );
+				internalSwapCall = false;
+				return ret;
+			};
+		}
+	} );
+}
+
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	if ( !internalSwapCall ) {
+		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
+	}
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+var oldData = jQuery.data;
+
+jQuery.data = function( elem, name, value ) {
+	var curData;
+
+	// Name can be an object, and each entry in the object is meant to be set as data
+	if ( name && typeof name === "object" && arguments.length === 2 ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		var sameKeys = {};
+		for ( var key in name ) {
+			if ( key !== jQuery.camelCase( key ) ) {
+				migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
+				curData[ key ] = name[ key ];
+			} else {
+				sameKeys[ key ] = name[ key ];
+			}
+		}
+
+		oldData.call( this, elem, sameKeys );
+
+		return name;
+	}
+
+	// If the name is transformed, look for the un-transformed name in the data object
+	if ( name && typeof name === "string" && name !== jQuery.camelCase( name ) ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		if ( curData && name in curData ) {
+			migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
+			if ( arguments.length > 2 ) {
+				curData[ name ] = value;
+			}
+			return curData[ name ];
+		}
+	}
+
+	return oldData.apply( this, arguments );
+};
+
+var oldTweenRun = jQuery.Tween.prototype.run;
+var linearEasing = function( pct ) {
+		return pct;
+	};
+
+jQuery.Tween.prototype.run = function( ) {
+	if ( jQuery.easing[ this.easing ].length > 1 ) {
+		migrateWarn(
+			"'jQuery.easing." + this.easing.toString() + "' should use only one argument"
+		);
+
+		jQuery.easing[ this.easing ] = linearEasing;
+	}
+
+	oldTweenRun.apply( this, arguments );
+};
+
+jQuery.fx.interval = jQuery.fx.interval || 13;
+
+// Support: IE9, Android <=4.4
+// Avoid false positives on browsers that lack rAF
+if ( window.requestAnimationFrame ) {
+	migrateWarnProp( jQuery.fx, "interval", jQuery.fx.interval,
+		"jQuery.fx.interval is deprecated" );
+}
+
+var oldLoad = jQuery.fn.load,
+	oldEventAdd = jQuery.event.add,
+	originalFix = jQuery.event.fix;
+
+jQuery.event.props = [];
+jQuery.event.fixHooks = {};
+
+migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
+	"jQuery.event.props.concat() is deprecated and removed" );
+
+jQuery.event.fix = function( originalEvent ) {
+	var event,
+		type = originalEvent.type,
+		fixHook = this.fixHooks[ type ],
+		props = jQuery.event.props;
+
+	if ( props.length ) {
+		migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
+		while ( props.length ) {
+			jQuery.event.addProp( props.pop() );
+		}
+	}
+
+	if ( fixHook && !fixHook._migrated_ ) {
+		fixHook._migrated_ = true;
+		migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
+		if ( ( props = fixHook.props ) && props.length ) {
+			while ( props.length ) {
+				jQuery.event.addProp( props.pop() );
+			}
+		}
+	}
+
+	event = originalFix.call( this, originalEvent );
+
+	return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+};
+
+jQuery.event.add = function( elem, types ) {
+
+	// This misses the multiple-types case but that seems awfully rare
+	if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
+		migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
+	}
+	return oldEventAdd.apply( this, arguments );
+};
+
+jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
+
+	jQuery.fn[ name ] = function() {
+		var args = Array.prototype.slice.call( arguments, 0 );
+
+		// If this is an ajax load() the first arg should be the string URL;
+		// technically this could also be the "Anything" arg of the event .load()
+		// which just goes to show why this dumb signature has been deprecated!
+		// jQuery custom builds that exclude the Ajax module justifiably die here.
+		if ( name === "load" && typeof args[ 0 ] === "string" ) {
+			return oldLoad.apply( this, args );
+		}
+
+		migrateWarn( "jQuery.fn." + name + "() is deprecated" );
+
+		args.splice( 0, 0, name );
+		if ( arguments.length ) {
+			return this.on.apply( this, args );
+		}
+
+		// Use .triggerHandler here because:
+		// - load and unload events don't need to bubble, only applied to window or image
+		// - error event should not bubble to window, although it does pre-1.7
+		// See http://bugs.jquery.com/ticket/11820
+		this.triggerHandler.apply( this, args );
+		return this;
+	};
+
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+// Trigger "ready" event only once, on document ready
+jQuery( function() {
+	jQuery( window.document ).triggerHandler( "ready" );
+} );
+
+jQuery.event.special.ready = {
+	setup: function() {
+		if ( this === window.document ) {
+			migrateWarn( "'ready' event is deprecated" );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		migrateWarn( "jQuery.fn.bind() is deprecated" );
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		migrateWarn( "jQuery.fn.unbind() is deprecated" );
+		return this.off( types, null, fn );
+	},
+	delegate: function( selector, types, data, fn ) {
+		migrateWarn( "jQuery.fn.delegate() is deprecated" );
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		migrateWarn( "jQuery.fn.undelegate() is deprecated" );
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+	hover: function( fnOver, fnOut ) {
+		migrateWarn( "jQuery.fn.hover() is deprecated" );
+		return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
+	}
+} );
+
+
+var oldOffset = jQuery.fn.offset;
+
+jQuery.fn.offset = function() {
+	var docElem,
+		elem = this[ 0 ],
+		origin = { top: 0, left: 0 };
+
+	if ( !elem || !elem.nodeType ) {
+		migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
+		return origin;
+	}
+
+	docElem = ( elem.ownerDocument || window.document ).documentElement;
+	if ( !jQuery.contains( docElem, elem ) ) {
+		migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
+		return origin;
+	}
+
+	return oldOffset.apply( this, arguments );
+};
+
+
+var oldParam = jQuery.param;
+
+jQuery.param = function( data, traditional ) {
+	var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+
+	if ( traditional === undefined && ajaxTraditional ) {
+
+		migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
+		traditional = ajaxTraditional;
+	}
+
+	return oldParam.call( this, data, traditional );
+};
+
+var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+	migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
+	return oldSelf.apply( this, arguments );
+};
+
+
+var oldDeferred = jQuery.Deferred,
+	tuples = [
+
+		// Action, add listener, callbacks, .then handlers, final state
+		[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "resolved" ],
+		[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "rejected" ],
+		[ "notify", "progress", jQuery.Callbacks( "memory" ),
+			jQuery.Callbacks( "memory" ) ]
+	];
+
+jQuery.Deferred = function( func ) {
+	var deferred = oldDeferred(),
+		promise = deferred.promise();
+
+	deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
+		var fns = arguments;
+
+		migrateWarn( "deferred.pipe() is deprecated" );
+
+		return jQuery.Deferred( function( newDefer ) {
+			jQuery.each( tuples, function( i, tuple ) {
+				var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+				// Deferred.done(function() { bind to newDefer or newDefer.resolve })
+				// deferred.fail(function() { bind to newDefer or newDefer.reject })
+				// deferred.progress(function() { bind to newDefer or newDefer.notify })
+				deferred[ tuple[ 1 ] ]( function() {
+					var returned = fn && fn.apply( this, arguments );
+					if ( returned && jQuery.isFunction( returned.promise ) ) {
+						returned.promise()
+							.done( newDefer.resolve )
+							.fail( newDefer.reject )
+							.progress( newDefer.notify );
+					} else {
+						newDefer[ tuple[ 0 ] + "With" ](
+							this === promise ? newDefer.promise() : this,
+							fn ? [ returned ] : arguments
+						);
+					}
+				} );
+			} );
+			fns = null;
+		} ).promise();
+
+	};
+
+	if ( func ) {
+		func.call( deferred, deferred );
+	}
+
+	return deferred;
+};
+
+// Preserve handler of uncaught exceptions in promise chains
+jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
+
+return jQuery;
+} );
diff --git a/apidocs/3.0.0/jquery/jquery-ui.css b/apidocs/3.0.0/jquery/jquery-ui.css
new file mode 100644
index 0000000..4f2fc19
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.css
@@ -0,0 +1,544 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #aaaaaa;
+	background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d3d3d3;
+	background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #555555;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #999999;
+	background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
+	color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-state-default .ui-icon {
+	background-image: url("images/ui-icons_888888_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-active .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-highlight .ui-icon {
+	background-image: url("images/ui-icons_2e83ff_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cd0a0a_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+	border-radius: 8px;
+}
diff --git a/apidocs/3.0.0/jquery/jquery-ui.js b/apidocs/3.0.0/jquery/jquery-ui.js
new file mode 100644
index 0000000..e1a68a1
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.js
@@ -0,0 +1,2610 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */
+
+
+// $.ui might exist from components with no dependencies, e.g., $.ui.position
+$.ui = $.ui || {};
+
+$.extend( $.ui, {
+	version: "1.11.4",
+
+	keyCode: {
+		BACKSPACE: 8,
+		COMMA: 188,
+		DELETE: 46,
+		DOWN: 40,
+		END: 35,
+		ENTER: 13,
+		ESCAPE: 27,
+		HOME: 36,
+		LEFT: 37,
+		PAGE_DOWN: 34,
+		PAGE_UP: 33,
+		PERIOD: 190,
+		RIGHT: 39,
+		SPACE: 32,
+		TAB: 9,
+		UP: 38
+	}
+});
+
+// plugins
+$.fn.extend({
+	scrollParent: function( includeHidden ) {
+		var position = this.css( "position" ),
+			excludeStaticParent = position === "absolute",
+			overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+			scrollParent = this.parents().filter( function() {
+				var parent = $( this );
+				if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+					return false;
+				}
+				return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
+			}).eq( 0 );
+
+		return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
+	},
+
+	uniqueId: (function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each(function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			});
+		};
+	})(),
+
+	removeUniqueId: function() {
+		return this.each(function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		});
+	}
+});
+
+// selectors
+function focusable( element, isTabIndexNotNaN ) {
+	var map, mapName, img,
+		nodeName = element.nodeName.toLowerCase();
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
+		return !!img && visible( img );
+	}
+	return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
+		!element.disabled :
+		"a" === nodeName ?
+			element.href || isTabIndexNotNaN :
+			isTabIndexNotNaN) &&
+		// the element and all of its ancestors must be visible
+		visible( element );
+}
+
+function visible( element ) {
+	return $.expr.filters.visible( element ) &&
+		!$( element ).parents().addBack().filter(function() {
+			return $.css( this, "visibility" ) === "hidden";
+		}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo(function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		}) :
+		// support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		},
+
+	focusable: function( element ) {
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
+	},
+
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			isTabIndexNaN = isNaN( tabIndex );
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
+	}
+});
+
+// support: jQuery <1.8
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			});
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each(function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			});
+		};
+
+		$.fn[ "outer" + name] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each(function() {
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
+			});
+		};
+	});
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
+if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
+	$.fn.removeData = (function( removeData ) {
+		return function( key ) {
+			if ( arguments.length ) {
+				return removeData.call( this, $.camelCase( key ) );
+			} else {
+				return removeData.call( this );
+			}
+		};
+	})( $.fn.removeData );
+}
+
+// deprecated
+$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+$.fn.extend({
+	focus: (function( orig ) {
+		return function( delay, fn ) {
+			return typeof delay === "number" ?
+				this.each(function() {
+					var elem = this;
+					setTimeout(function() {
+						$( elem ).focus();
+						if ( fn ) {
+							fn.call( elem );
+						}
+					}, delay );
+				}) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.focus ),
+
+	disableSelection: (function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.bind( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+		};
+	})(),
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	},
+
+	zIndex: function( zIndex ) {
+		if ( zIndex !== undefined ) {
+			return this.css( "zIndex", zIndex );
+		}
+
+		if ( this.length ) {
+			var elem = $( this[ 0 ] ), position, value;
+			while ( elem.length && elem[ 0 ] !== document ) {
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
+				// This makes behavior of this function consistent across browsers
+				// WebKit always returns auto if the element is positioned
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+					// IE returns 0 when zIndex is not specified
+					// other browsers return a string
+					// we ignore the case of nested elements with an explicit value of 0
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
+						return value;
+					}
+				}
+				elem = elem.parent();
+			}
+		}
+
+		return 0;
+	}
+});
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+$.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+	widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; (elem = elems[i]) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+})( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widget_slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = widget_slice.call( arguments, 1 ),
+			returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat(args) );
+			}
+
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widget_uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled", !!value );
+
+			// If the widget is becoming disabled, then nothing is interactive
+			if ( value ) {
+				this.hoverable.removeClass( "ui-state-hover" );
+				this.focusable.removeClass( "ui-state-focus" );
+			}
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOptions({ disabled: false });
+	},
+	disable: function() {
+		return this._setOptions({ disabled: true });
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+(function() {
+
+$.ui = $.ui || {};
+
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[0];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[0];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[0].clientWidth;
+		}
+
+		div.remove();
+
+		return (cachedScrollbarWidth = w1 - w2);
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[0].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[0] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: withinElement.offset() || { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+
+			// support: jQuery 1.6.x
+			// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
+			width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
+			height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[0].preventDefault ) {
+		// force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+	// clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	});
+
+	// normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each(function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// if the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				});
+			}
+		});
+
+		if ( options.using ) {
+			// adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	});
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+				// element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
+					position.left += overLeft - newOverRight;
+				// element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+				// element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+			// too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+			// too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+			// adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+				// element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
+					position.top += overTop - newOverBottom;
+				// element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+				// element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+			// too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+			// too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+			// adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+// fraction support test
+(function() {
+	var testElement, testElementParent, testElementStyle, offsetLeft, i,
+		body = document.getElementsByTagName( "body" )[ 0 ],
+		div = document.createElement( "div" );
+
+	//Create a "fake body" for testing based on method used in jQuery.support
+	testElement = document.createElement( body ? "div" : "body" );
+	testElementStyle = {
+		visibility: "hidden",
+		width: 0,
+		height: 0,
+		border: 0,
+		margin: 0,
+		background: "none"
+	};
+	if ( body ) {
+		$.extend( testElementStyle, {
+			position: "absolute",
+			left: "-1000px",
+			top: "-1000px"
+		});
+	}
+	for ( i in testElementStyle ) {
+		testElement.style[ i ] = testElementStyle[ i ];
+	}
+	testElement.appendChild( div );
+	testElementParent = body || document.documentElement;
+	testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+	div.style.cssText = "position: absolute; left: 10.7432222px;";
+
+	offsetLeft = $( div ).offset().left;
+	supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
+
+	testElement.innerHTML = "";
+	testElementParent.removeChild( testElement );
+})();
+
+})();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Menu 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/menu/
+ */
+
+
+var menu = $.widget( "ui.menu", {
+	version: "1.11.4",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-carat-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left-1 top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.addClass( "ui-menu ui-widget ui-widget-content" )
+			.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
+			.attr({
+				role: this.options.role,
+				tabIndex: 0
+			});
+
+		if ( this.options.disabled ) {
+			this.element
+				.addClass( "ui-state-disabled" )
+				.attr( "aria-disabled", "true" );
+		}
+
+		this._on({
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+				var target = $( event.currentTarget );
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay(function() {
+					if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
+						this.collapseAll( event );
+					}
+				});
+			},
+			keydown: "_keydown"
+		});
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		});
+	},
+
+	_destroy: function() {
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
+				.removeAttr( "role" )
+				.removeAttr( "tabIndex" )
+				.removeAttr( "aria-labelledby" )
+				.removeAttr( "aria-expanded" )
+				.removeAttr( "aria-hidden" )
+				.removeAttr( "aria-disabled" )
+				.removeUniqueId()
+				.show();
+
+		// Destroy menu items
+		this.element.find( ".ui-menu-item" )
+			.removeClass( "ui-menu-item" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-disabled" )
+			.removeUniqueId()
+			.removeClass( "ui-state-hover" )
+			.removeAttr( "tabIndex" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-haspopup" )
+			.children().each( function() {
+				var elem = $( this );
+				if ( elem.data( "ui-menu-submenu-carat" ) ) {
+					elem.remove();
+				}
+			});
+
+		// Destroy menu dividers
+		this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay(function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.is( "[aria-haspopup='true']" ) ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		submenus.filter( ":not(.ui-menu)" )
+			.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
+			.hide()
+			.attr({
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			})
+			.each(function() {
+				var menu = $( this ),
+					item = menu.parent(),
+					submenuCarat = $( "<span>" )
+						.addClass( "ui-menu-icon ui-icon " + icon )
+						.data( "ui-menu-submenu-carat", true );
+
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCarat );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			});
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each(function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				item.addClass( "ui-widget-content ui-menu-divider" );
+			}
+		});
+
+		// Don't refresh list items that are already adapted
+		items.not( ".ui-menu-item, .ui-menu-divider" )
+			.addClass( "ui-menu-item" )
+			.uniqueId()
+			.attr({
+				tabIndex: -1,
+				role: this._itemRole()
+			});
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.element.find( ".ui-menu-icon" )
+				.removeClass( this.options.icons.submenu )
+				.addClass( value.submenu );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+		focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		this.active
+			.parent()
+			.closest( ".ui-menu-item" )
+			.addClass( "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay(function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening(nested);
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this.active.removeClass( "ui-state-focus" );
+		this.active = null;
+
+		this._trigger( "blur", event, { item: this.active } );
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the carat icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay(function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend({
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu
+			.find( ".ui-menu" )
+				.hide()
+				.attr( "aria-hidden", "true" )
+				.attr( "aria-expanded", "false" )
+			.end()
+			.find( ".ui-state-active" ).not( ".ui-state-focus" )
+				.removeClass( "ui-state-active" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+				.find( this.options.items )
+				.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay(function() {
+				this.focus( event, newItem );
+			});
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function(character) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+			// Only match on items, not dividers or other content (#10571)
+			.filter( ".ui-menu-item" )
+			.filter(function() {
+				return regex.test( $.trim( $( this ).text() ) );
+			});
+	}
+});
+
+
+/*!
+ * jQuery UI Autocomplete 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/autocomplete/
+ */
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.11.4",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		this.isMultiLine =
+			// Textareas are always multi-line
+			isTextarea ? true :
+			// Inputs are always single-line, even if inside a contentEditable element
+			// IE also treats inputs as contentEditable
+			isInput ? false :
+			// All other element types are determined by whether or not they're contentEditable
+			this.element.prop( "isContentEditable" );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this.element
+			.addClass( "ui-autocomplete-input" )
+			.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		});
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.addClass( "ui-autocomplete ui-front" )
+			.appendTo( this._appendTo() )
+			.menu({
+				// disable ARIA support, the live region takes care of that
+				role: null
+			})
+			.hide()
+			.menu( "instance" );
+
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay(function() {
+					delete this.cancelBlur;
+				});
+
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = this.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					this._delay(function() {
+						var that = this;
+						this.document.one( "mousedown", function( event ) {
+							if ( event.target !== that.element[ 0 ] &&
+									event.target !== menuElement &&
+									!$.contains( menuElement, event.target ) ) {
+								that.close();
+							}
+						});
+					});
+				}
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						});
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
+					this.element.focus();
+					this.previous = previous;
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay(function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					});
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		});
+
+		this.liveRegion = $( "<span>", {
+				role: "status",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element
+			.removeClass( "ui-autocomplete-input" )
+			.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response([]);
+					}
+				});
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay(function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy(function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this.element.removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			});
+		});
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" ).text( item.label ).appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	}
+});
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		});
+	}
+});
+
+// live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+});
+
+var autocomplete = $.ui.autocomplete;
+
+
+
+}));
diff --git a/apidocs/3.0.0/jquery/jquery-ui.min.css b/apidocs/3.0.0/jquery/jquery-ui.min.css
new file mode 100644
index 0000000..94816ca
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
diff --git a/apidocs/3.0.0/jquery/jquery-ui.min.js b/apidocs/3.0.0/jquery/jquery-ui.min.js
new file mode 100644
index 0000000..e1ae5f6
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.min.js
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+a+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+a+"'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget,function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,N=e.extend({},y),M=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?N.left-=d:"center"===n.my[0]&&(N.left-=d/2),"bottom"===n.my[1]?N.top-=c:"center"===n.my[1]&&(N.top-=c/2),N.left+=M[0],N.top+=M[1],a||(N.left=h(N.left),N.top=h(N.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](N,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+M[0],p[1]+M[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-N.left,i=t+m-d,s=v.top-N.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:N.left,top:N.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(N,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()
+},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete});
diff --git a/apidocs/3.0.0/jquery/jquery-ui.structure.css b/apidocs/3.0.0/jquery/jquery-ui.structure.css
new file mode 100644
index 0000000..1a53ab4
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.structure.css
@@ -0,0 +1,152 @@
+/*!
+ * jQuery UI CSS Framework 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
diff --git a/apidocs/3.0.0/jquery/jquery-ui.structure.min.css b/apidocs/3.0.0/jquery/jquery-ui.structure.min.css
new file mode 100644
index 0000000..7f29f9a
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
diff --git a/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.js b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.js
new file mode 100644
index 0000000..a74cc70
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.js
@@ -0,0 +1,56 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
+/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
+"use strict";
+
+// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
+var IEBinaryToArray_ByteStr_Script =
+    "<!-- IEBinaryToArray_ByteStr -->\r\n"+
+    "<script type='text/vbscript'>\r\n"+
+    "Function IEBinaryToArray_ByteStr(Binary)\r\n"+
+    "   IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
+    "End Function\r\n"+
+    "Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
+    "   Dim lastIndex\r\n"+
+    "   lastIndex = LenB(Binary)\r\n"+
+    "   if lastIndex mod 2 Then\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
+    "   Else\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
+    "   End If\r\n"+
+    "End Function\r\n"+
+    "</script>\r\n";
+
+// inject VBScript
+document.write(IEBinaryToArray_ByteStr_Script);
+
+global.JSZipUtils._getBinaryFromXHR = function (xhr) {
+    var binary = xhr.responseBody;
+    var byteMapping = {};
+    for ( var i = 0; i < 256; i++ ) {
+        for ( var j = 0; j < 256; j++ ) {
+            byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
+                String.fromCharCode(i) + String.fromCharCode(j);
+        }
+    }
+    var rawBytes = IEBinaryToArray_ByteStr(binary);
+    var lastChr = IEBinaryToArray_ByteStr_Last(binary);
+    return rawBytes.replace(/[\s\S]/g, function( match ) {
+        return byteMapping[match];
+    }) + lastChr;
+};
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+;
diff --git a/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.min.js
new file mode 100644
index 0000000..93d8bc8
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils-ie.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n   IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n   Dim lastIndex\r\n   lastIndex = LenB(Binary)\r\n   if lastIndex mod 2 Then\r\n       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n   Else\r\n       IEBinaryToArray_ByteStr_Last = \"\"\r\n   End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
diff --git a/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.js b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.js
new file mode 100644
index 0000000..775895e
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.js
@@ -0,0 +1,118 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+
+var JSZipUtils = {};
+// just use the responseText with xhr1, response with xhr2.
+// The transformation doesn't throw away high-order byte (with responseText)
+// because JSZip handles that case. If not used with JSZip, you may need to
+// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
+JSZipUtils._getBinaryFromXHR = function (xhr) {
+    // for xhr.responseText, the 0xFF mask is applied by JSZip
+    return xhr.response || xhr.responseText;
+};
+
+// taken from jQuery
+function createStandardXHR() {
+    try {
+        return new window.XMLHttpRequest();
+    } catch( e ) {}
+}
+
+function createActiveXHR() {
+    try {
+        return new window.ActiveXObject("Microsoft.XMLHTTP");
+    } catch( e ) {}
+}
+
+// Create the request object
+var createXHR = window.ActiveXObject ?
+    /* Microsoft failed to properly
+     * implement the XMLHttpRequest in IE7 (can't request local files),
+     * so we use the ActiveXObject when it is available
+     * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+     * we need a fallback.
+     */
+    function() {
+    return createStandardXHR() || createActiveXHR();
+} :
+    // For all other browsers, use the standard XMLHttpRequest object
+    createStandardXHR;
+
+
+
+JSZipUtils.getBinaryContent = function(path, callback) {
+    /*
+     * Here is the tricky part : getting the data.
+     * In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
+     * is enough, the result is in the standard xhr.responseText.
+     * cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
+     * In IE <= 9, we must use (the IE only) attribute responseBody
+     * (for binary data, its content is different from responseText).
+     * In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
+     * responseType will work :
+     * http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
+     *
+     * I'd like to use jQuery to avoid this XHR madness, but it doesn't support
+     * the responseType attribute : http://bugs.jquery.com/ticket/11461
+     */
+    try {
+
+        var xhr = createXHR();
+
+        xhr.open('GET', path, true);
+
+        // recent browsers
+        if ("responseType" in xhr) {
+            xhr.responseType = "arraybuffer";
+        }
+
+        // older browser
+        if(xhr.overrideMimeType) {
+            xhr.overrideMimeType("text/plain; charset=x-user-defined");
+        }
+
+        xhr.onreadystatechange = function(evt) {
+            var file, err;
+            // use `xhr` and not `this`... thanks IE
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200 || xhr.status === 0) {
+                    file = null;
+                    err = null;
+                    try {
+                        file = JSZipUtils._getBinaryFromXHR(xhr);
+                    } catch(e) {
+                        err = new Error(e);
+                    }
+                    callback(err, file);
+                } else {
+                    callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
+                }
+            }
+        };
+
+        xhr.send();
+
+    } catch (e) {
+        callback(new Error(e), null);
+    }
+};
+
+// export
+module.exports = JSZipUtils;
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+(1)
+});
+;
diff --git a/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.min.js b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.min.js
new file mode 100644
index 0000000..78c7f5e
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip-utils/dist/jszip-utils.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});
diff --git a/apidocs/3.0.0/jquery/jszip/dist/jszip.js b/apidocs/3.0.0/jquery/jszip/dist/jszip.js
new file mode 100644
index 0000000..02804cd
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip/dist/jszip.js
@@ -0,0 +1,11623 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var support = require('./support');
+// private property
+var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+
+// public method for encoding
+exports.encode = function(input) {
+    var output = [];
+    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
+    var i = 0, len = input.length, remainingBytes = len;
+
+    var isArray = utils.getTypeOf(input) !== "string";
+    while (i < input.length) {
+        remainingBytes = len - i;
+
+        if (!isArray) {
+            chr1 = input.charCodeAt(i++);
+            chr2 = i < len ? input.charCodeAt(i++) : 0;
+            chr3 = i < len ? input.charCodeAt(i++) : 0;
+        } else {
+            chr1 = input[i++];
+            chr2 = i < len ? input[i++] : 0;
+            chr3 = i < len ? input[i++] : 0;
+        }
+
+        enc1 = chr1 >> 2;
+        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+        enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;
+        enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;
+
+        output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));
+
+    }
+
+    return output.join("");
+};
+
+// public method for decoding
+exports.decode = function(input) {
+    var chr1, chr2, chr3;
+    var enc1, enc2, enc3, enc4;
+    var i = 0, resultIndex = 0;
+
+    var dataUrlPrefix = "data:";
+
+    if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {
+        // This is a common error: people give a data url
+        // (data:image/png;base64,iVBOR...) with a {base64: true} and
+        // wonders why things don't work.
+        // We can detect that the string input looks like a data url but we
+        // *can't* be sure it is one: removing everything up to the comma would
+        // be too dangerous.
+        throw new Error("Invalid base64 input, it looks like a data url.");
+    }
+
+    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+    var totalLength = input.length * 3 / 4;
+    if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if (totalLength % 1 !== 0) {
+        // totalLength is not an integer, the length does not match a valid
+        // base64 content. That can happen if:
+        // - the input is not a base64 content
+        // - the input is *almost* a base64 content, with a extra chars at the
+        //   beginning or at the end
+        // - the input uses a base64 variant (base64url for example)
+        throw new Error("Invalid base64 input, bad content length.");
+    }
+    var output;
+    if (support.uint8array) {
+        output = new Uint8Array(totalLength|0);
+    } else {
+        output = new Array(totalLength|0);
+    }
+
+    while (i < input.length) {
+
+        enc1 = _keyStr.indexOf(input.charAt(i++));
+        enc2 = _keyStr.indexOf(input.charAt(i++));
+        enc3 = _keyStr.indexOf(input.charAt(i++));
+        enc4 = _keyStr.indexOf(input.charAt(i++));
+
+        chr1 = (enc1 << 2) | (enc2 >> 4);
+        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+        chr3 = ((enc3 & 3) << 6) | enc4;
+
+        output[resultIndex++] = chr1;
+
+        if (enc3 !== 64) {
+            output[resultIndex++] = chr2;
+        }
+        if (enc4 !== 64) {
+            output[resultIndex++] = chr3;
+        }
+
+    }
+
+    return output;
+};
+
+},{"./support":30,"./utils":32}],2:[function(require,module,exports){
+'use strict';
+
+var external = require("./external");
+var DataWorker = require('./stream/DataWorker');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+var Crc32Probe = require('./stream/Crc32Probe');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+
+/**
+ * Represent a compressed object, with everything needed to decompress it.
+ * @constructor
+ * @param {number} compressedSize the size of the data compressed.
+ * @param {number} uncompressedSize the size of the data after decompression.
+ * @param {number} crc32 the crc32 of the decompressed file.
+ * @param {object} compression the type of compression, see lib/compressions.js.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.
+ */
+function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {
+    this.compressedSize = compressedSize;
+    this.uncompressedSize = uncompressedSize;
+    this.crc32 = crc32;
+    this.compression = compression;
+    this.compressedContent = data;
+}
+
+CompressedObject.prototype = {
+    /**
+     * Create a worker to get the uncompressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getContentWorker : function () {
+        var worker = new DataWorker(external.Promise.resolve(this.compressedContent))
+        .pipe(this.compression.uncompressWorker())
+        .pipe(new DataLengthProbe("data_length"));
+
+        var that = this;
+        worker.on("end", function () {
+            if(this.streamInfo['data_length'] !== that.uncompressedSize) {
+                throw new Error("Bug : uncompressed data size mismatch");
+            }
+        });
+        return worker;
+    },
+    /**
+     * Create a worker to get the compressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getCompressedWorker : function () {
+        return new DataWorker(external.Promise.resolve(this.compressedContent))
+        .withStreamInfo("compressedSize", this.compressedSize)
+        .withStreamInfo("uncompressedSize", this.uncompressedSize)
+        .withStreamInfo("crc32", this.crc32)
+        .withStreamInfo("compression", this.compression)
+        ;
+    }
+};
+
+/**
+ * Chain the given worker with other workers to compress the content with the
+ * given compresion.
+ * @param {GenericWorker} uncompressedWorker the worker to pipe.
+ * @param {Object} compression the compression object.
+ * @param {Object} compressionOptions the options to use when compressing.
+ * @return {GenericWorker} the new worker compressing the content.
+ */
+CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {
+    return uncompressedWorker
+    .pipe(new Crc32Probe())
+    .pipe(new DataLengthProbe("uncompressedSize"))
+    .pipe(compression.compressWorker(compressionOptions))
+    .pipe(new DataLengthProbe("compressedSize"))
+    .withStreamInfo("compression", compression);
+};
+
+module.exports = CompressedObject;
+
+},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require("./stream/GenericWorker");
+
+exports.STORE = {
+    magic: "\x00\x00",
+    compressWorker : function (compressionOptions) {
+        return new GenericWorker("STORE compression");
+    },
+    uncompressWorker : function () {
+        return new GenericWorker("STORE decompression");
+    }
+};
+exports.DEFLATE = require('./flate');
+
+},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+
+/**
+ * The following functions come from pako, from pako/lib/zlib/crc32.js
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+    var c, table = [];
+
+    for(var n =0; n < 256; n++){
+        c = n;
+        for(var k =0; k < 8; k++){
+            c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+        }
+        table[n] = c;
+    }
+
+    return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+// That's all for the pako functions.
+
+/**
+ * Compute the crc32 of a string.
+ * This is almost the same as the function crc32, but for strings. Using the
+ * same function for the two use cases leads to horrible performances.
+ * @param {Number} crc the starting value of the crc.
+ * @param {String} str the string to use.
+ * @param {Number} len the length of the string.
+ * @param {Number} pos the starting position for the crc32 computation.
+ * @return {Number} the computed crc32.
+ */
+function crc32str(crc, str, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+module.exports = function crc32wrapper(input, crc) {
+    if (typeof input === "undefined" || !input.length) {
+        return 0;
+    }
+
+    var isArray = utils.getTypeOf(input) !== "string";
+
+    if(isArray) {
+        return crc32(crc|0, input, input.length, 0);
+    } else {
+        return crc32str(crc|0, input, input.length, 0);
+    }
+};
+
+},{"./utils":32}],5:[function(require,module,exports){
+'use strict';
+exports.base64 = false;
+exports.binary = false;
+exports.dir = false;
+exports.createFolders = true;
+exports.date = null;
+exports.compression = null;
+exports.compressionOptions = null;
+exports.comment = null;
+exports.unixPermissions = null;
+exports.dosPermissions = null;
+
+},{}],6:[function(require,module,exports){
+/* global Promise */
+'use strict';
+
+// load the global object first:
+// - it should be better integrated in the system (unhandledRejection in node)
+// - the environment may have a custom Promise implementation (see zone.js)
+var ES6Promise = null;
+if (typeof Promise !== "undefined") {
+    ES6Promise = Promise;
+} else {
+    ES6Promise = require("lie");
+}
+
+/**
+ * Let the user use/change some implementations.
+ */
+module.exports = {
+    Promise: ES6Promise
+};
+
+},{"lie":58}],7:[function(require,module,exports){
+'use strict';
+var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
+
+var pako = require("pako");
+var utils = require("./utils");
+var GenericWorker = require("./stream/GenericWorker");
+
+var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array";
+
+exports.magic = "\x08\x00";
+
+/**
+ * Create a worker that uses pako to inflate/deflate.
+ * @constructor
+ * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate".
+ * @param {Object} options the options to use when (de)compressing.
+ */
+function FlateWorker(action, options) {
+    GenericWorker.call(this, "FlateWorker/" + action);
+
+    this._pako = null;
+    this._pakoAction = action;
+    this._pakoOptions = options;
+    // the `meta` object from the last chunk received
+    // this allow this worker to pass around metadata
+    this.meta = {};
+}
+
+utils.inherits(FlateWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+FlateWorker.prototype.processChunk = function (chunk) {
+    this.meta = chunk.meta;
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false);
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+FlateWorker.prototype.flush = function () {
+    GenericWorker.prototype.flush.call(this);
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push([], true);
+};
+/**
+ * @see GenericWorker.cleanUp
+ */
+FlateWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this._pako = null;
+};
+
+/**
+ * Create the _pako object.
+ * TODO: lazy-loading this object isn't the best solution but it's the
+ * quickest. The best solution is to lazy-load the worker list. See also the
+ * issue #446.
+ */
+FlateWorker.prototype._createPako = function () {
+    this._pako = new pako[this._pakoAction]({
+        raw: true,
+        level: this._pakoOptions.level || -1 // default compression
+    });
+    var self = this;
+    this._pako.onData = function(data) {
+        self.push({
+            data : data,
+            meta : self.meta
+        });
+    };
+};
+
+exports.compressWorker = function (compressionOptions) {
+    return new FlateWorker("Deflate", compressionOptions);
+};
+exports.uncompressWorker = function () {
+    return new FlateWorker("Inflate", {});
+};
+
+},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+var utf8 = require('../utf8');
+var crc32 = require('../crc32');
+var signature = require('../signature');
+
+/**
+ * Transform an integer into a string in hexadecimal.
+ * @private
+ * @param {number} dec the number to convert.
+ * @param {number} bytes the number of bytes to generate.
+ * @returns {string} the result.
+ */
+var decToHex = function(dec, bytes) {
+    var hex = "", i;
+    for (i = 0; i < bytes; i++) {
+        hex += String.fromCharCode(dec & 0xff);
+        dec = dec >>> 8;
+    }
+    return hex;
+};
+
+/**
+ * Generate the UNIX part of the external file attributes.
+ * @param {Object} unixPermissions the unix permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute :
+ *
+ * TTTTsstrwxrwxrwx0000000000ADVSHR
+ * ^^^^____________________________ file type, see zipinfo.c (UNX_*)
+ *     ^^^_________________________ setuid, setgid, sticky
+ *        ^^^^^^^^^________________ permissions
+ *                 ^^^^^^^^^^______ not used ?
+ *                           ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only
+ */
+var generateUnixExternalFileAttr = function (unixPermissions, isDir) {
+
+    var result = unixPermissions;
+    if (!unixPermissions) {
+        // I can't use octal values in strict mode, hence the hexa.
+        //  040775 => 0x41fd
+        // 0100664 => 0x81b4
+        result = isDir ? 0x41fd : 0x81b4;
+    }
+    return (result & 0xFFFF) << 16;
+};
+
+/**
+ * Generate the DOS part of the external file attributes.
+ * @param {Object} dosPermissions the dos permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * Bit 0     Read-Only
+ * Bit 1     Hidden
+ * Bit 2     System
+ * Bit 3     Volume Label
+ * Bit 4     Directory
+ * Bit 5     Archive
+ */
+var generateDosExternalFileAttr = function (dosPermissions, isDir) {
+
+    // the dir flag is already set for compatibility
+    return (dosPermissions || 0)  & 0x3F;
+};
+
+/**
+ * Generate the various parts used in the construction of the final zip file.
+ * @param {Object} streamInfo the hash with informations about the compressed file.
+ * @param {Boolean} streamedContent is the content streamed ?
+ * @param {Boolean} streamingEnded is the stream finished ?
+ * @param {number} offset the current offset from the start of the zip file.
+ * @param {String} platform let's pretend we are this platform (change platform dependents fields)
+ * @param {Function} encodeFileName the function to encode the file name / comment.
+ * @return {Object} the zip parts.
+ */
+var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {
+    var file = streamInfo['file'],
+    compression = streamInfo['compression'],
+    useCustomEncoding = encodeFileName !== utf8.utf8encode,
+    encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
+    utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
+    comment = file.comment,
+    encodedComment = utils.transformTo("string", encodeFileName(comment)),
+    utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
+    useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
+    useUTF8ForComment = utfEncodedComment.length !== comment.length,
+    dosTime,
+    dosDate,
+    extraFields = "",
+    unicodePathExtraField = "",
+    unicodeCommentExtraField = "",
+    dir = file.dir,
+    date = file.date;
+
+
+    var dataInfo = {
+        crc32 : 0,
+        compressedSize : 0,
+        uncompressedSize : 0
+    };
+
+    // if the content is streamed, the sizes/crc32 are only available AFTER
+    // the end of the stream.
+    if (!streamedContent || streamingEnded) {
+        dataInfo.crc32 = streamInfo['crc32'];
+        dataInfo.compressedSize = streamInfo['compressedSize'];
+        dataInfo.uncompressedSize = streamInfo['uncompressedSize'];
+    }
+
+    var bitflag = 0;
+    if (streamedContent) {
+        // Bit 3: the sizes/crc32 are set to zero in the local header.
+        // The correct values are put in the data descriptor immediately
+        // following the compressed data.
+        bitflag |= 0x0008;
+    }
+    if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) {
+        // Bit 11: Language encoding flag (EFS).
+        bitflag |= 0x0800;
+    }
+
+
+    var extFileAttr = 0;
+    var versionMadeBy = 0;
+    if (dir) {
+        // dos or unix, we set the dos dir flag
+        extFileAttr |= 0x00010;
+    }
+    if(platform === "UNIX") {
+        versionMadeBy = 0x031E; // UNIX, version 3.0
+        extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);
+    } else { // DOS or other, fallback to DOS
+        versionMadeBy = 0x0014; // DOS, version 2.0
+        extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir);
+    }
+
+    // date
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html
+
+    dosTime = date.getUTCHours();
+    dosTime = dosTime << 6;
+    dosTime = dosTime | date.getUTCMinutes();
+    dosTime = dosTime << 5;
+    dosTime = dosTime | date.getUTCSeconds() / 2;
+
+    dosDate = date.getUTCFullYear() - 1980;
+    dosDate = dosDate << 4;
+    dosDate = dosDate | (date.getUTCMonth() + 1);
+    dosDate = dosDate << 5;
+    dosDate = dosDate | date.getUTCDate();
+
+    if (useUTF8ForFileName) {
+        // set the unicode path extra field. unzip needs at least one extra
+        // field to correctly handle unicode path, so using the path is as good
+        // as any other information. This could improve the situation with
+        // other archive managers too.
+        // This field is usually used without the utf8 flag, with a non
+        // unicode path in the header (winrar, winzip). This helps (a bit)
+        // with the messy Windows' default compressed folders feature but
+        // breaks on p7zip which doesn't seek the unicode path extra field.
+        // So for now, UTF-8 everywhere !
+        unicodePathExtraField =
+            // Version
+            decToHex(1, 1) +
+            // NameCRC32
+            decToHex(crc32(encodedFileName), 4) +
+            // UnicodeName
+            utfEncodedFileName;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x70" +
+            // size
+            decToHex(unicodePathExtraField.length, 2) +
+            // content
+            unicodePathExtraField;
+    }
+
+    if(useUTF8ForComment) {
+
+        unicodeCommentExtraField =
+            // Version
+            decToHex(1, 1) +
+            // CommentCRC32
+            decToHex(crc32(encodedComment), 4) +
+            // UnicodeName
+            utfEncodedComment;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x63" +
+            // size
+            decToHex(unicodeCommentExtraField.length, 2) +
+            // content
+            unicodeCommentExtraField;
+    }
+
+    var header = "";
+
+    // version needed to extract
+    header += "\x0A\x00";
+    // general purpose bit flag
+    header += decToHex(bitflag, 2);
+    // compression method
+    header += compression.magic;
+    // last mod file time
+    header += decToHex(dosTime, 2);
+    // last mod file date
+    header += decToHex(dosDate, 2);
+    // crc-32
+    header += decToHex(dataInfo.crc32, 4);
+    // compressed size
+    header += decToHex(dataInfo.compressedSize, 4);
+    // uncompressed size
+    header += decToHex(dataInfo.uncompressedSize, 4);
+    // file name length
+    header += decToHex(encodedFileName.length, 2);
+    // extra field length
+    header += decToHex(extraFields.length, 2);
+
+
+    var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields;
+
+    var dirRecord = signature.CENTRAL_FILE_HEADER +
+        // version made by (00: DOS)
+        decToHex(versionMadeBy, 2) +
+        // file header (common to file and central directory)
+        header +
+        // file comment length
+        decToHex(encodedComment.length, 2) +
+        // disk number start
+        "\x00\x00" +
+        // internal file attributes TODO
+        "\x00\x00" +
+        // external file attributes
+        decToHex(extFileAttr, 4) +
+        // relative offset of local header
+        decToHex(offset, 4) +
+        // file name
+        encodedFileName +
+        // extra field
+        extraFields +
+        // file comment
+        encodedComment;
+
+    return {
+        fileRecord: fileRecord,
+        dirRecord: dirRecord
+    };
+};
+
+/**
+ * Generate the EOCD record.
+ * @param {Number} entriesCount the number of entries in the zip file.
+ * @param {Number} centralDirLength the length (in bytes) of the central dir.
+ * @param {Number} localDirLength the length (in bytes) of the local dir.
+ * @param {String} comment the zip file comment as a binary string.
+ * @param {Function} encodeFileName the function to encode the comment.
+ * @return {String} the EOCD record.
+ */
+var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) {
+    var dirEnd = "";
+    var encodedComment = utils.transformTo("string", encodeFileName(comment));
+
+    // end of central dir signature
+    dirEnd = signature.CENTRAL_DIRECTORY_END +
+        // number of this disk
+        "\x00\x00" +
+        // number of the disk with the start of the central directory
+        "\x00\x00" +
+        // total number of entries in the central directory on this disk
+        decToHex(entriesCount, 2) +
+        // total number of entries in the central directory
+        decToHex(entriesCount, 2) +
+        // size of the central directory   4 bytes
+        decToHex(centralDirLength, 4) +
+        // offset of start of central directory with respect to the starting disk number
+        decToHex(localDirLength, 4) +
+        // .ZIP file comment length
+        decToHex(encodedComment.length, 2) +
+        // .ZIP file comment
+        encodedComment;
+
+    return dirEnd;
+};
+
+/**
+ * Generate data descriptors for a file entry.
+ * @param {Object} streamInfo the hash generated by a worker, containing informations
+ * on the file entry.
+ * @return {String} the data descriptors.
+ */
+var generateDataDescriptors = function (streamInfo) {
+    var descriptor = "";
+    descriptor = signature.DATA_DESCRIPTOR +
+        // crc-32                          4 bytes
+        decToHex(streamInfo['crc32'], 4) +
+        // compressed size                 4 bytes
+        decToHex(streamInfo['compressedSize'], 4) +
+        // uncompressed size               4 bytes
+        decToHex(streamInfo['uncompressedSize'], 4);
+
+    return descriptor;
+};
+
+
+/**
+ * A worker to concatenate other workers to create a zip file.
+ * @param {Boolean} streamFiles `true` to stream the content of the files,
+ * `false` to accumulate it.
+ * @param {String} comment the comment to use.
+ * @param {String} platform the platform to use, "UNIX" or "DOS".
+ * @param {Function} encodeFileName the function to encode file names and comments.
+ */
+function ZipFileWorker(streamFiles, comment, platform, encodeFileName) {
+    GenericWorker.call(this, "ZipFileWorker");
+    // The number of bytes written so far. This doesn't count accumulated chunks.
+    this.bytesWritten = 0;
+    // The comment of the zip file
+    this.zipComment = comment;
+    // The platform "generating" the zip file.
+    this.zipPlatform = platform;
+    // the function to encode file names and comments.
+    this.encodeFileName = encodeFileName;
+    // Should we stream the content of the files ?
+    this.streamFiles = streamFiles;
+    // If `streamFiles` is false, we will need to accumulate the content of the
+    // files to calculate sizes / crc32 (and write them *before* the content).
+    // This boolean indicates if we are accumulating chunks (it will change a lot
+    // during the lifetime of this worker).
+    this.accumulate = false;
+    // The buffer receiving chunks when accumulating content.
+    this.contentBuffer = [];
+    // The list of generated directory records.
+    this.dirRecords = [];
+    // The offset (in bytes) from the beginning of the zip file for the current source.
+    this.currentSourceOffset = 0;
+    // The total number of entries in this zip file.
+    this.entriesCount = 0;
+    // the name of the file currently being added, null when handling the end of the zip file.
+    // Used for the emited metadata.
+    this.currentFile = null;
+
+
+
+    this._sources = [];
+}
+utils.inherits(ZipFileWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.push
+ */
+ZipFileWorker.prototype.push = function (chunk) {
+
+    var currentFilePercent = chunk.meta.percent || 0;
+    var entriesCount = this.entriesCount;
+    var remainingFiles = this._sources.length;
+
+    if(this.accumulate) {
+        this.contentBuffer.push(chunk);
+    } else {
+        this.bytesWritten += chunk.data.length;
+
+        GenericWorker.prototype.push.call(this, {
+            data : chunk.data,
+            meta : {
+                currentFile : this.currentFile,
+                percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100
+            }
+        });
+    }
+};
+
+/**
+ * The worker started a new source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the new source.
+ */
+ZipFileWorker.prototype.openedSource = function (streamInfo) {
+    this.currentSourceOffset = this.bytesWritten;
+    this.currentFile = streamInfo['file'].name;
+
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+
+    // don't stream folders (because they don't have any content)
+    if(streamedContent) {
+        var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+    } else {
+        // we need to wait for the whole file before pushing anything
+        this.accumulate = true;
+    }
+};
+
+/**
+ * The worker finished a source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the finished source.
+ */
+ZipFileWorker.prototype.closedSource = function (streamInfo) {
+    this.accumulate = false;
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+    var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+
+    this.dirRecords.push(record.dirRecord);
+    if(streamedContent) {
+        // after the streamed file, we put data descriptors
+        this.push({
+            data : generateDataDescriptors(streamInfo),
+            meta : {percent:100}
+        });
+    } else {
+        // the content wasn't streamed, we need to push everything now
+        // first the file record, then the content
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+        while(this.contentBuffer.length) {
+            this.push(this.contentBuffer.shift());
+        }
+    }
+    this.currentFile = null;
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+ZipFileWorker.prototype.flush = function () {
+
+    var localDirLength = this.bytesWritten;
+    for(var i = 0; i < this.dirRecords.length; i++) {
+        this.push({
+            data : this.dirRecords[i],
+            meta : {percent:100}
+        });
+    }
+    var centralDirLength = this.bytesWritten - localDirLength;
+
+    var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName);
+
+    this.push({
+        data : dirEnd,
+        meta : {percent:100}
+    });
+};
+
+/**
+ * Prepare the next source to be read.
+ */
+ZipFileWorker.prototype.prepareNextSource = function () {
+    this.previous = this._sources.shift();
+    this.openedSource(this.previous.streamInfo);
+    if (this.isPaused) {
+        this.previous.pause();
+    } else {
+        this.previous.resume();
+    }
+};
+
+/**
+ * @see GenericWorker.registerPrevious
+ */
+ZipFileWorker.prototype.registerPrevious = function (previous) {
+    this._sources.push(previous);
+    var self = this;
+
+    previous.on('data', function (chunk) {
+        self.processChunk(chunk);
+    });
+    previous.on('end', function () {
+        self.closedSource(self.previous.streamInfo);
+        if(self._sources.length) {
+            self.prepareNextSource();
+        } else {
+            self.end();
+        }
+    });
+    previous.on('error', function (e) {
+        self.error(e);
+    });
+    return this;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+ZipFileWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this.previous && this._sources.length) {
+        this.prepareNextSource();
+        return true;
+    }
+    if (!this.previous && !this._sources.length && !this.generatedError) {
+        this.end();
+        return true;
+    }
+};
+
+/**
+ * @see GenericWorker.error
+ */
+ZipFileWorker.prototype.error = function (e) {
+    var sources = this._sources;
+    if(!GenericWorker.prototype.error.call(this, e)) {
+        return false;
+    }
+    for(var i = 0; i < sources.length; i++) {
+        try {
+            sources[i].error(e);
+        } catch(e) {
+            // the `error` exploded, nothing to do
+        }
+    }
+    return true;
+};
+
+/**
+ * @see GenericWorker.lock
+ */
+ZipFileWorker.prototype.lock = function () {
+    GenericWorker.prototype.lock.call(this);
+    var sources = this._sources;
+    for(var i = 0; i < sources.length; i++) {
+        sources[i].lock();
+    }
+};
+
+module.exports = ZipFileWorker;
+
+},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){
+'use strict';
+
+var compressions = require('../compressions');
+var ZipFileWorker = require('./ZipFileWorker');
+
+/**
+ * Find the compression to use.
+ * @param {String} fileCompression the compression defined at the file level, if any.
+ * @param {String} zipCompression the compression defined at the load() level.
+ * @return {Object} the compression object to use.
+ */
+var getCompression = function (fileCompression, zipCompression) {
+
+    var compressionName = fileCompression || zipCompression;
+    var compression = compressions[compressionName];
+    if (!compression) {
+        throw new Error(compressionName + " is not a valid compression method !");
+    }
+    return compression;
+};
+
+/**
+ * Create a worker to generate a zip file.
+ * @param {JSZip} zip the JSZip instance at the right root level.
+ * @param {Object} options to generate the zip file.
+ * @param {String} comment the comment to use.
+ */
+exports.generateWorker = function (zip, options, comment) {
+
+    var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);
+    var entriesCount = 0;
+    try {
+
+        zip.forEach(function (relativePath, file) {
+            entriesCount++;
+            var compression = getCompression(file.options.compression, options.compression);
+            var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};
+            var dir = file.dir, date = file.date;
+
+            file._compressWorker(compression, compressionOptions)
+            .withStreamInfo("file", {
+                name : relativePath,
+                dir : dir,
+                date : date,
+                comment : file.comment || "",
+                unixPermissions : file.unixPermissions,
+                dosPermissions : file.dosPermissions
+            })
+            .pipe(zipFileWorker);
+        });
+        zipFileWorker.entriesCount = entriesCount;
+    } catch (e) {
+        zipFileWorker.error(e);
+    }
+
+    return zipFileWorker;
+};
+
+},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){
+'use strict';
+
+/**
+ * Representation a of zip file in js
+ * @constructor
+ */
+function JSZip() {
+    // if this constructor is used without `new`, it adds `new` before itself:
+    if(!(this instanceof JSZip)) {
+        return new JSZip();
+    }
+
+    if(arguments.length) {
+        throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
+    }
+
+    // object containing the files :
+    // {
+    //   "folder/" : {...},
+    //   "folder/data.txt" : {...}
+    // }
+    this.files = {};
+
+    this.comment = null;
+
+    // Where we are in the hierarchy
+    this.root = "";
+    this.clone = function() {
+        var newObj = new JSZip();
+        for (var i in this) {
+            if (typeof this[i] !== "function") {
+                newObj[i] = this[i];
+            }
+        }
+        return newObj;
+    };
+}
+JSZip.prototype = require('./object');
+JSZip.prototype.loadAsync = require('./load');
+JSZip.support = require('./support');
+JSZip.defaults = require('./defaults');
+
+// TODO find a better way to handle this version,
+// a require('package.json').version doesn't work with webpack, see #327
+JSZip.version = "3.1.5";
+
+JSZip.loadAsync = function (content, options) {
+    return new JSZip().loadAsync(content, options);
+};
+
+JSZip.external = require("./external");
+module.exports = JSZip;
+
+},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var external = require("./external");
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var ZipEntries = require('./zipEntries');
+var Crc32Probe = require('./stream/Crc32Probe');
+var nodejsUtils = require("./nodejsUtils");
+
+/**
+ * Check the CRC32 of an entry.
+ * @param {ZipEntry} zipEntry the zip entry to check.
+ * @return {Promise} the result.
+ */
+function checkEntryCRC32(zipEntry) {
+    return new external.Promise(function (resolve, reject) {
+        var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());
+        worker.on("error", function (e) {
+            reject(e);
+        })
+        .on("end", function () {
+            if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
+                reject(new Error("Corrupted zip : CRC32 mismatch"));
+            } else {
+                resolve();
+            }
+        })
+        .resume();
+    });
+}
+
+module.exports = function(data, options) {
+    var zip = this;
+    options = utils.extend(options || {}, {
+        base64: false,
+        checkCRC32: false,
+        optimizedBinaryString: false,
+        createFolders: false,
+        decodeFileName: utf8.utf8decode
+    });
+
+    if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file."));
+    }
+
+    return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64)
+    .then(function(data) {
+        var zipEntries = new ZipEntries(options);
+        zipEntries.load(data);
+        return zipEntries;
+    }).then(function checkCRC32(zipEntries) {
+        var promises = [external.Promise.resolve(zipEntries)];
+        var files = zipEntries.files;
+        if (options.checkCRC32) {
+            for (var i = 0; i < files.length; i++) {
+                promises.push(checkEntryCRC32(files[i]));
+            }
+        }
+        return external.Promise.all(promises);
+    }).then(function addFiles(results) {
+        var zipEntries = results.shift();
+        var files = zipEntries.files;
+        for (var i = 0; i < files.length; i++) {
+            var input = files[i];
+            zip.file(input.fileNameStr, input.decompressed, {
+                binary: true,
+                optimizedBinaryString: true,
+                date: input.date,
+                dir: input.dir,
+                comment : input.fileCommentStr.length ? input.fileCommentStr : null,
+                unixPermissions : input.unixPermissions,
+                dosPermissions : input.dosPermissions,
+                createFolders: options.createFolders
+            });
+        }
+        if (zipEntries.zipComment.length) {
+            zip.comment = zipEntries.zipComment;
+        }
+
+        return zip;
+    });
+};
+
+},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){
+"use strict";
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+
+/**
+ * A worker that use a nodejs stream as source.
+ * @constructor
+ * @param {String} filename the name of the file entry for this stream.
+ * @param {Readable} stream the nodejs stream.
+ */
+function NodejsStreamInputAdapter(filename, stream) {
+    GenericWorker.call(this, "Nodejs stream input adapter for " + filename);
+    this._upstreamEnded = false;
+    this._bindStream(stream);
+}
+
+utils.inherits(NodejsStreamInputAdapter, GenericWorker);
+
+/**
+ * Prepare the stream and bind the callbacks on it.
+ * Do this ASAP on node 0.10 ! A lazy binding doesn't always work.
+ * @param {Stream} stream the nodejs stream to use.
+ */
+NodejsStreamInputAdapter.prototype._bindStream = function (stream) {
+    var self = this;
+    this._stream = stream;
+    stream.pause();
+    stream
+    .on("data", function (chunk) {
+        self.push({
+            data: chunk,
+            meta : {
+                percent : 0
+            }
+        });
+    })
+    .on("error", function (e) {
+        if(self.isPaused) {
+            this.generatedError = e;
+        } else {
+            self.error(e);
+        }
+    })
+    .on("end", function () {
+        if(self.isPaused) {
+            self._upstreamEnded = true;
+        } else {
+            self.end();
+        }
+    });
+};
+NodejsStreamInputAdapter.prototype.pause = function () {
+    if(!GenericWorker.prototype.pause.call(this)) {
+        return false;
+    }
+    this._stream.pause();
+    return true;
+};
+NodejsStreamInputAdapter.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if(this._upstreamEnded) {
+        this.end();
+    } else {
+        this._stream.resume();
+    }
+
+    return true;
+};
+
+module.exports = NodejsStreamInputAdapter;
+
+},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){
+'use strict';
+
+var Readable = require('readable-stream').Readable;
+
+var utils = require('../utils');
+utils.inherits(NodejsStreamOutputAdapter, Readable);
+
+/**
+* A nodejs stream using a worker as source.
+* @see the SourceWrapper in http://nodejs.org/api/stream.html
+* @constructor
+* @param {StreamHelper} helper the helper wrapping the worker
+* @param {Object} options the nodejs stream options
+* @param {Function} updateCb the update callback.
+*/
+function NodejsStreamOutputAdapter(helper, options, updateCb) {
+    Readable.call(this, options);
+    this._helper = helper;
+
+    var self = this;
+    helper.on("data", function (data, meta) {
+        if (!self.push(data)) {
+            self._helper.pause();
+        }
+        if(updateCb) {
+            updateCb(meta);
+        }
+    })
+    .on("error", function(e) {
+        self.emit('error', e);
+    })
+    .on("end", function () {
+        self.push(null);
+    });
+}
+
+
+NodejsStreamOutputAdapter.prototype._read = function() {
+    this._helper.resume();
+};
+
+module.exports = NodejsStreamOutputAdapter;
+
+},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){
+'use strict';
+
+module.exports = {
+    /**
+     * True if this is running in Nodejs, will be undefined in a browser.
+     * In a browser, browserify won't include this file and the whole module
+     * will be resolved an empty object.
+     */
+    isNode : typeof Buffer !== "undefined",
+    /**
+     * Create a new nodejs Buffer from an existing content.
+     * @param {Object} data the data to pass to the constructor.
+     * @param {String} encoding the encoding to use.
+     * @return {Buffer} a new Buffer.
+     */
+    newBufferFrom: function(data, encoding) {
+        // XXX We can't use `Buffer.from` which comes from `Uint8Array.from`
+        // in nodejs v4 (< v.4.5). It's not the expected implementation (and
+        // has a different signature).
+        // see https://github.com/nodejs/node/issues/8053
+        // A condition on nodejs' version won't solve the issue as we don't
+        // control the Buffer polyfills that may or may not be used.
+        return new Buffer(data, encoding);
+    },
+    /**
+     * Create a new nodejs Buffer with the specified size.
+     * @param {Integer} size the size of the buffer.
+     * @return {Buffer} a new Buffer.
+     */
+    allocBuffer: function (size) {
+        if (Buffer.alloc) {
+            return Buffer.alloc(size);
+        } else {
+            return new Buffer(size);
+        }
+    },
+    /**
+     * Find out if an object is a Buffer.
+     * @param {Object} b the object to test.
+     * @return {Boolean} true if the object is a Buffer, false otherwise.
+     */
+    isBuffer : function(b){
+        return Buffer.isBuffer(b);
+    },
+
+    isStream : function (obj) {
+        return obj &&
+            typeof obj.on === "function" &&
+            typeof obj.pause === "function" &&
+            typeof obj.resume === "function";
+    }
+};
+
+},{}],15:[function(require,module,exports){
+'use strict';
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var GenericWorker = require('./stream/GenericWorker');
+var StreamHelper = require('./stream/StreamHelper');
+var defaults = require('./defaults');
+var CompressedObject = require('./compressedObject');
+var ZipObject = require('./zipObject');
+var generate = require("./generate");
+var nodejsUtils = require("./nodejsUtils");
+var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter");
+
+
+/**
+ * Add a file in the current folder.
+ * @private
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file
+ * @param {Object} originalOptions the options of the file
+ * @return {Object} the new file.
+ */
+var fileAdd = function(name, data, originalOptions) {
+    // be sure sub folders exist
+    var dataType = utils.getTypeOf(data),
+        parent;
+
+
+    /*
+     * Correct options.
+     */
+
+    var o = utils.extend(originalOptions || {}, defaults);
+    o.date = o.date || new Date();
+    if (o.compression !== null) {
+        o.compression = o.compression.toUpperCase();
+    }
+
+    if (typeof o.unixPermissions === "string") {
+        o.unixPermissions = parseInt(o.unixPermissions, 8);
+    }
+
+    // UNX_IFDIR  0040000 see zipinfo.c
+    if (o.unixPermissions && (o.unixPermissions & 0x4000)) {
+        o.dir = true;
+    }
+    // Bit 4    Directory
+    if (o.dosPermissions && (o.dosPermissions & 0x0010)) {
+        o.dir = true;
+    }
+
+    if (o.dir) {
+        name = forceTrailingSlash(name);
+    }
+    if (o.createFolders && (parent = parentFolder(name))) {
+        folderAdd.call(this, parent, true);
+    }
+
+    var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false;
+    if (!originalOptions || typeof originalOptions.binary === "undefined") {
+        o.binary = !isUnicodeString;
+    }
+
+
+    var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;
+
+    if (isCompressedEmpty || o.dir || !data || data.length === 0) {
+        o.base64 = false;
+        o.binary = true;
+        data = "";
+        o.compression = "STORE";
+        dataType = "string";
+    }
+
+    /*
+     * Convert content to fit.
+     */
+
+    var zipObjectContent = null;
+    if (data instanceof CompressedObject || data instanceof GenericWorker) {
+        zipObjectContent = data;
+    } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        zipObjectContent = new NodejsStreamInputAdapter(name, data);
+    } else {
+        zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);
+    }
+
+    var object = new ZipObject(name, zipObjectContent, o);
+    this.files[name] = object;
+    /*
+    TODO: we can't throw an exception because we have async promises
+    (we can have a promise of a Date() for example) but returning a
+    promise is useless because file(name, data) returns the JSZip
+    object for chaining. Should we break that to allow the user
+    to catch the error ?
+
+    return external.Promise.resolve(zipObjectContent)
+    .then(function () {
+        return object;
+    });
+    */
+};
+
+/**
+ * Find the parent folder of the path.
+ * @private
+ * @param {string} path the path to use
+ * @return {string} the parent folder, or ""
+ */
+var parentFolder = function (path) {
+    if (path.slice(-1) === '/') {
+        path = path.substring(0, path.length - 1);
+    }
+    var lastSlash = path.lastIndexOf('/');
+    return (lastSlash > 0) ? path.substring(0, lastSlash) : "";
+};
+
+/**
+ * Returns the path with a slash at the end.
+ * @private
+ * @param {String} path the path to check.
+ * @return {String} the path with a trailing slash.
+ */
+var forceTrailingSlash = function(path) {
+    // Check the name ends with a /
+    if (path.slice(-1) !== "/") {
+        path += "/"; // IE doesn't like substr(-1)
+    }
+    return path;
+};
+
+/**
+ * Add a (sub) folder in the current folder.
+ * @private
+ * @param {string} name the folder's name
+ * @param {boolean=} [createFolders] If true, automatically create sub
+ *  folders. Defaults to false.
+ * @return {Object} the new folder.
+ */
+var folderAdd = function(name, createFolders) {
+    createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders;
+
+    name = forceTrailingSlash(name);
+
+    // Does this folder already exist?
+    if (!this.files[name]) {
+        fileAdd.call(this, name, null, {
+            dir: true,
+            createFolders: createFolders
+        });
+    }
+    return this.files[name];
+};
+
+/**
+* Cross-window, cross-Node-context regular expression detection
+* @param  {Object}  object Anything
+* @return {Boolean}        true if the object is a regular expression,
+* false otherwise
+*/
+function isRegExp(object) {
+    return Object.prototype.toString.call(object) === "[object RegExp]";
+}
+
+// return the actual prototype of JSZip
+var out = {
+    /**
+     * @see loadAsync
+     */
+    load: function() {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+
+    /**
+     * Call a callback function for each entry at this folder level.
+     * @param {Function} cb the callback function:
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     */
+    forEach: function(cb) {
+        var filename, relativePath, file;
+        for (filename in this.files) {
+            if (!this.files.hasOwnProperty(filename)) {
+                continue;
+            }
+            file = this.files[filename];
+            relativePath = filename.slice(this.root.length, filename.length);
+            if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
+                cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
+            }
+        }
+    },
+
+    /**
+     * Filter nested files/folders with the specified function.
+     * @param {Function} search the predicate to use :
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     * @return {Array} An array of matching elements.
+     */
+    filter: function(search) {
+        var result = [];
+        this.forEach(function (relativePath, entry) {
+            if (search(relativePath, entry)) { // the file matches the function
+                result.push(entry);
+            }
+
+        });
+        return result;
+    },
+
+    /**
+     * Add a file to the zip file, or search a file.
+     * @param   {string|RegExp} name The name of the file to add (if data is defined),
+     * the name of the file to find (if no data) or a regex to match files.
+     * @param   {String|ArrayBuffer|Uint8Array|Buffer} data  The file data, either raw or base64 encoded
+     * @param   {Object} o     File options
+     * @return  {JSZip|Object|Array} this JSZip object (when adding a file),
+     * a file (when searching by string) or an array of files (when searching by regex).
+     */
+    file: function(name, data, o) {
+        if (arguments.length === 1) {
+            if (isRegExp(name)) {
+                var regexp = name;
+                return this.filter(function(relativePath, file) {
+                    return !file.dir && regexp.test(relativePath);
+                });
+            }
+            else { // text
+                var obj = this.files[this.root + name];
+                if (obj && !obj.dir) {
+                    return obj;
+                } else {
+                    return null;
+                }
+            }
+        }
+        else { // more than one argument : we have data !
+            name = this.root + name;
+            fileAdd.call(this, name, data, o);
+        }
+        return this;
+    },
+
+    /**
+     * Add a directory to the zip file, or search.
+     * @param   {String|RegExp} arg The name of the directory to add, or a regex to search folders.
+     * @return  {JSZip} an object with the new directory as the root, or an array containing matching folders.
+     */
+    folder: function(arg) {
+        if (!arg) {
+            return this;
+        }
+
+        if (isRegExp(arg)) {
+            return this.filter(function(relativePath, file) {
+                return file.dir && arg.test(relativePath);
+            });
+        }
+
+        // else, name is a new folder
+        var name = this.root + arg;
+        var newFolder = folderAdd.call(this, name);
+
+        // Allow chaining by returning a new object with this folder as the root
+        var ret = this.clone();
+        ret.root = newFolder.name;
+        return ret;
+    },
+
+    /**
+     * Delete a file, or a directory and all sub-files, from the zip
+     * @param {string} name the name of the file to delete
+     * @return {JSZip} this JSZip object
+     */
+    remove: function(name) {
+        name = this.root + name;
+        var file = this.files[name];
+        if (!file) {
+            // Look for any folders
+            if (name.slice(-1) !== "/") {
+                name += "/";
+            }
+            file = this.files[name];
+        }
+
+        if (file && !file.dir) {
+            // file
+            delete this.files[name];
+        } else {
+            // maybe a folder, delete recursively
+            var kids = this.filter(function(relativePath, file) {
+                return file.name.slice(0, name.length) === name;
+            });
+            for (var i = 0; i < kids.length; i++) {
+                delete this.files[kids[i].name];
+            }
+        }
+
+        return this;
+    },
+
+    /**
+     * Generate the complete zip file
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file
+     */
+    generate: function(options) {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+    /**
+     * Generate the complete zip file as an internal stream.
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {StreamHelper} the streamed zip file.
+     */
+    generateInternalStream: function(options) {
+      var worker, opts = {};
+      try {
+          opts = utils.extend(options || {}, {
+              streamFiles: false,
+              compression: "STORE",
+              compressionOptions : null,
+              type: "",
+              platform: "DOS",
+              comment: null,
+              mimeType: 'application/zip',
+              encodeFileName: utf8.utf8encode
+          });
+
+          opts.type = opts.type.toLowerCase();
+          opts.compression = opts.compression.toUpperCase();
+
+          // "binarystring" is prefered but the internals use "string".
+          if(opts.type === "binarystring") {
+            opts.type = "string";
+          }
+
+          if (!opts.type) {
+            throw new Error("No output type specified.");
+          }
+
+          utils.checkSupport(opts.type);
+
+          // accept nodejs `process.platform`
+          if(
+              opts.platform === 'darwin' ||
+              opts.platform === 'freebsd' ||
+              opts.platform === 'linux' ||
+              opts.platform === 'sunos'
+          ) {
+              opts.platform = "UNIX";
+          }
+          if (opts.platform === 'win32') {
+              opts.platform = "DOS";
+          }
+
+          var comment = opts.comment || this.comment || "";
+          worker = generate.generateWorker(this, opts, comment);
+      } catch (e) {
+        worker = new GenericWorker("error");
+        worker.error(e);
+      }
+      return new StreamHelper(worker, opts.type || "string", opts.mimeType);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateAsync: function(options, onUpdate) {
+        return this.generateInternalStream(options).accumulate(onUpdate);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateNodeStream: function(options, onUpdate) {
+        options = options || {};
+        if (!options.type) {
+            options.type = "nodebuffer";
+        }
+        return this.generateInternalStream(options).toNodejsStream(onUpdate);
+    }
+};
+module.exports = out;
+
+},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){
+/*
+ * This file is used by module bundlers (browserify/webpack/etc) when
+ * including a stream implementation. We use "readable-stream" to get a
+ * consistent behavior between nodejs versions but bundlers often have a shim
+ * for "stream". Using this shim greatly improve the compatibility and greatly
+ * reduce the final size of the bundle (only one stream implementation, not
+ * two).
+ */
+module.exports = require("stream");
+
+},{"stream":undefined}],17:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function ArrayReader(data) {
+    DataReader.call(this, data);
+	for(var i = 0; i < this.data.length; i++) {
+		data[i] = data[i] & 0xFF;
+	}
+}
+utils.inherits(ArrayReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+ArrayReader.prototype.byteAt = function(i) {
+    return this.data[this.zero + i];
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+ArrayReader.prototype.lastIndexOfSignature = function(sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3);
+    for (var i = this.length - 4; i >= 0; --i) {
+        if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {
+            return i - this.zero;
+        }
+    }
+
+    return -1;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+ArrayReader.prototype.readAndCheckSignature = function (sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3),
+        data = this.readData(4);
+    return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];
+};
+/**
+ * @see DataReader.readData
+ */
+ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        return [];
+    }
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = ArrayReader;
+
+},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){
+'use strict';
+var utils = require('../utils');
+
+function DataReader(data) {
+    this.data = data; // type : see implementation
+    this.length = data.length;
+    this.index = 0;
+    this.zero = 0;
+}
+DataReader.prototype = {
+    /**
+     * Check that the offset will not go too far.
+     * @param {string} offset the additional offset to check.
+     * @throws {Error} an Error if the offset is out of bounds.
+     */
+    checkOffset: function(offset) {
+        this.checkIndex(this.index + offset);
+    },
+    /**
+     * Check that the specified index will not be too far.
+     * @param {string} newIndex the index to check.
+     * @throws {Error} an Error if the index is out of bounds.
+     */
+    checkIndex: function(newIndex) {
+        if (this.length < this.zero + newIndex || newIndex < 0) {
+            throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
+        }
+    },
+    /**
+     * Change the index.
+     * @param {number} newIndex The new index.
+     * @throws {Error} if the new index is out of the data.
+     */
+    setIndex: function(newIndex) {
+        this.checkIndex(newIndex);
+        this.index = newIndex;
+    },
+    /**
+     * Skip the next n bytes.
+     * @param {number} n the number of bytes to skip.
+     * @throws {Error} if the new index is out of the data.
+     */
+    skip: function(n) {
+        this.setIndex(this.index + n);
+    },
+    /**
+     * Get the byte at the specified index.
+     * @param {number} i the index to use.
+     * @return {number} a byte.
+     */
+    byteAt: function(i) {
+        // see implementations
+    },
+    /**
+     * Get the next number with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {number} the corresponding number.
+     */
+    readInt: function(size) {
+        var result = 0,
+            i;
+        this.checkOffset(size);
+        for (i = this.index + size - 1; i >= this.index; i--) {
+            result = (result << 8) + this.byteAt(i);
+        }
+        this.index += size;
+        return result;
+    },
+    /**
+     * Get the next string with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {string} the corresponding string.
+     */
+    readString: function(size) {
+        return utils.transformTo("string", this.readData(size));
+    },
+    /**
+     * Get raw data without conversion, <size> bytes.
+     * @param {number} size the number of bytes to read.
+     * @return {Object} the raw data, implementation specific.
+     */
+    readData: function(size) {
+        // see implementations
+    },
+    /**
+     * Find the last occurence of a zip signature (4 bytes).
+     * @param {string} sig the signature to find.
+     * @return {number} the index of the last occurence, -1 if not found.
+     */
+    lastIndexOfSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Read the signature (4 bytes) at the current position and compare it with sig.
+     * @param {string} sig the expected signature
+     * @return {boolean} true if the signature matches, false otherwise.
+     */
+    readAndCheckSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Get the next date.
+     * @return {Date} the date.
+     */
+    readDate: function() {
+        var dostime = this.readInt(4);
+        return new Date(Date.UTC(
+        ((dostime >> 25) & 0x7f) + 1980, // year
+        ((dostime >> 21) & 0x0f) - 1, // month
+        (dostime >> 16) & 0x1f, // day
+        (dostime >> 11) & 0x1f, // hour
+        (dostime >> 5) & 0x3f, // minute
+        (dostime & 0x1f) << 1)); // second
+    }
+};
+module.exports = DataReader;
+
+},{"../utils":32}],19:[function(require,module,exports){
+'use strict';
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+var utils = require('../utils');
+
+function NodeBufferReader(data) {
+    Uint8ArrayReader.call(this, data);
+}
+utils.inherits(NodeBufferReader, Uint8ArrayReader);
+
+/**
+ * @see DataReader.readData
+ */
+NodeBufferReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = NodeBufferReader;
+
+},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function StringReader(data) {
+    DataReader.call(this, data);
+}
+utils.inherits(StringReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+StringReader.prototype.byteAt = function(i) {
+    return this.data.charCodeAt(this.zero + i);
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+StringReader.prototype.lastIndexOfSignature = function(sig) {
+    return this.data.lastIndexOf(sig) - this.zero;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+StringReader.prototype.readAndCheckSignature = function (sig) {
+    var data = this.readData(4);
+    return sig === data;
+};
+/**
+ * @see DataReader.readData
+ */
+StringReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    // this will work because the constructor applied the "& 0xff" mask.
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = StringReader;
+
+},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){
+'use strict';
+var ArrayReader = require('./ArrayReader');
+var utils = require('../utils');
+
+function Uint8ArrayReader(data) {
+    ArrayReader.call(this, data);
+}
+utils.inherits(Uint8ArrayReader, ArrayReader);
+/**
+ * @see DataReader.readData
+ */
+Uint8ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].
+        return new Uint8Array(0);
+    }
+    var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = Uint8ArrayReader;
+
+},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var support = require('../support');
+var ArrayReader = require('./ArrayReader');
+var StringReader = require('./StringReader');
+var NodeBufferReader = require('./NodeBufferReader');
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+
+/**
+ * Create a reader adapted to the data.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.
+ * @return {DataReader} the data reader.
+ */
+module.exports = function (data) {
+    var type = utils.getTypeOf(data);
+    utils.checkSupport(type);
+    if (type === "string" && !support.uint8array) {
+        return new StringReader(data);
+    }
+    if (type === "nodebuffer") {
+        return new NodeBufferReader(data);
+    }
+    if (support.uint8array) {
+        return new Uint8ArrayReader(utils.transformTo("uint8array", data));
+    }
+    return new ArrayReader(utils.transformTo("array", data));
+};
+
+},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){
+'use strict';
+exports.LOCAL_FILE_HEADER = "PK\x03\x04";
+exports.CENTRAL_FILE_HEADER = "PK\x01\x02";
+exports.CENTRAL_DIRECTORY_END = "PK\x05\x06";
+exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07";
+exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06";
+exports.DATA_DESCRIPTOR = "PK\x07\x08";
+
+},{}],24:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var utils = require('../utils');
+
+/**
+ * A worker which convert chunks to a specified type.
+ * @constructor
+ * @param {String} destType the destination type.
+ */
+function ConvertWorker(destType) {
+    GenericWorker.call(this, "ConvertWorker to " + destType);
+    this.destType = destType;
+}
+utils.inherits(ConvertWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+ConvertWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : utils.transformTo(this.destType, chunk.data),
+        meta : chunk.meta
+    });
+};
+module.exports = ConvertWorker;
+
+},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var crc32 = require('../crc32');
+var utils = require('../utils');
+
+/**
+ * A worker which calculate the crc32 of the data flowing through.
+ * @constructor
+ */
+function Crc32Probe() {
+    GenericWorker.call(this, "Crc32Probe");
+    this.withStreamInfo("crc32", 0);
+}
+utils.inherits(Crc32Probe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Crc32Probe.prototype.processChunk = function (chunk) {
+    this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);
+    this.push(chunk);
+};
+module.exports = Crc32Probe;
+
+},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+/**
+ * A worker which calculate the total length of the data flowing through.
+ * @constructor
+ * @param {String} propName the name used to expose the length
+ */
+function DataLengthProbe(propName) {
+    GenericWorker.call(this, "DataLengthProbe for " + propName);
+    this.propName = propName;
+    this.withStreamInfo(propName, 0);
+}
+utils.inherits(DataLengthProbe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+DataLengthProbe.prototype.processChunk = function (chunk) {
+    if(chunk) {
+        var length = this.streamInfo[this.propName] || 0;
+        this.streamInfo[this.propName] = length + chunk.data.length;
+    }
+    GenericWorker.prototype.processChunk.call(this, chunk);
+};
+module.exports = DataLengthProbe;
+
+
+},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+// the size of the generated chunks
+// TODO expose this as a public variable
+var DEFAULT_BLOCK_SIZE = 16 * 1024;
+
+/**
+ * A worker that reads a content and emits chunks.
+ * @constructor
+ * @param {Promise} dataP the promise of the data to split
+ */
+function DataWorker(dataP) {
+    GenericWorker.call(this, "DataWorker");
+    var self = this;
+    this.dataIsReady = false;
+    this.index = 0;
+    this.max = 0;
+    this.data = null;
+    this.type = "";
+
+    this._tickScheduled = false;
+
+    dataP.then(function (data) {
+        self.dataIsReady = true;
+        self.data = data;
+        self.max = data && data.length || 0;
+        self.type = utils.getTypeOf(data);
+        if(!self.isPaused) {
+            self._tickAndRepeat();
+        }
+    }, function (e) {
+        self.error(e);
+    });
+}
+
+utils.inherits(DataWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.cleanUp
+ */
+DataWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this.data = null;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+DataWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this._tickScheduled && this.dataIsReady) {
+        this._tickScheduled = true;
+        utils.delay(this._tickAndRepeat, [], this);
+    }
+    return true;
+};
+
+/**
+ * Trigger a tick a schedule an other call to this function.
+ */
+DataWorker.prototype._tickAndRepeat = function() {
+    this._tickScheduled = false;
+    if(this.isPaused || this.isFinished) {
+        return;
+    }
+    this._tick();
+    if(!this.isFinished) {
+        utils.delay(this._tickAndRepeat, [], this);
+        this._tickScheduled = true;
+    }
+};
+
+/**
+ * Read and push a chunk.
+ */
+DataWorker.prototype._tick = function() {
+
+    if(this.isPaused || this.isFinished) {
+        return false;
+    }
+
+    var size = DEFAULT_BLOCK_SIZE;
+    var data = null, nextIndex = Math.min(this.max, this.index + size);
+    if (this.index >= this.max) {
+        // EOF
+        return this.end();
+    } else {
+        switch(this.type) {
+            case "string":
+                data = this.data.substring(this.index, nextIndex);
+            break;
+            case "uint8array":
+                data = this.data.subarray(this.index, nextIndex);
+            break;
+            case "array":
+            case "nodebuffer":
+                data = this.data.slice(this.index, nextIndex);
+            break;
+        }
+        this.index = nextIndex;
+        return this.push({
+            data : data,
+            meta : {
+                percent : this.max ? this.index / this.max * 100 : 0
+            }
+        });
+    }
+};
+
+module.exports = DataWorker;
+
+},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){
+'use strict';
+
+/**
+ * A worker that does nothing but passing chunks to the next one. This is like
+ * a nodejs stream but with some differences. On the good side :
+ * - it works on IE 6-9 without any issue / polyfill
+ * - it weights less than the full dependencies bundled with browserify
+ * - it forwards errors (no need to declare an error handler EVERYWHERE)
+ *
+ * A chunk is an object with 2 attributes : `meta` and `data`. The former is an
+ * object containing anything (`percent` for example), see each worker for more
+ * details. The latter is the real data (String, Uint8Array, etc).
+ *
+ * @constructor
+ * @param {String} name the name of the stream (mainly used for debugging purposes)
+ */
+function GenericWorker(name) {
+    // the name of the worker
+    this.name = name || "default";
+    // an object containing metadata about the workers chain
+    this.streamInfo = {};
+    // an error which happened when the worker was paused
+    this.generatedError = null;
+    // an object containing metadata to be merged by this worker into the general metadata
+    this.extraStreamInfo = {};
+    // true if the stream is paused (and should not do anything), false otherwise
+    this.isPaused = true;
+    // true if the stream is finished (and should not do anything), false otherwise
+    this.isFinished = false;
+    // true if the stream is locked to prevent further structure updates (pipe), false otherwise
+    this.isLocked = false;
+    // the event listeners
+    this._listeners = {
+        'data':[],
+        'end':[],
+        'error':[]
+    };
+    // the previous worker, if any
+    this.previous = null;
+}
+
+GenericWorker.prototype = {
+    /**
+     * Push a chunk to the next workers.
+     * @param {Object} chunk the chunk to push
+     */
+    push : function (chunk) {
+        this.emit("data", chunk);
+    },
+    /**
+     * End the stream.
+     * @return {Boolean} true if this call ended the worker, false otherwise.
+     */
+    end : function () {
+        if (this.isFinished) {
+            return false;
+        }
+
+        this.flush();
+        try {
+            this.emit("end");
+            this.cleanUp();
+            this.isFinished = true;
+        } catch (e) {
+            this.emit("error", e);
+        }
+        return true;
+    },
+    /**
+     * End the stream with an error.
+     * @param {Error} e the error which caused the premature end.
+     * @return {Boolean} true if this call ended the worker with an error, false otherwise.
+     */
+    error : function (e) {
+        if (this.isFinished) {
+            return false;
+        }
+
+        if(this.isPaused) {
+            this.generatedError = e;
+        } else {
+            this.isFinished = true;
+
+            this.emit("error", e);
+
+            // in the workers chain exploded in the middle of the chain,
+            // the error event will go downward but we also need to notify
+            // workers upward that there has been an error.
+            if(this.previous) {
+                this.previous.error(e);
+            }
+
+            this.cleanUp();
+        }
+        return true;
+    },
+    /**
+     * Add a callback on an event.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Function} listener the function to call when the event is triggered
+     * @return {GenericWorker} the current object for chainability
+     */
+    on : function (name, listener) {
+        this._listeners[name].push(listener);
+        return this;
+    },
+    /**
+     * Clean any references when a worker is ending.
+     */
+    cleanUp : function () {
+        this.streamInfo = this.generatedError = this.extraStreamInfo = null;
+        this._listeners = [];
+    },
+    /**
+     * Trigger an event. This will call registered callback with the provided arg.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Object} arg the argument to call the callback with.
+     */
+    emit : function (name, arg) {
+        if (this._listeners[name]) {
+            for(var i = 0; i < this._listeners[name].length; i++) {
+                this._listeners[name][i].call(this, arg);
+            }
+        }
+    },
+    /**
+     * Chain a worker with an other.
+     * @param {Worker} next the worker receiving events from the current one.
+     * @return {worker} the next worker for chainability
+     */
+    pipe : function (next) {
+        return next.registerPrevious(this);
+    },
+    /**
+     * Same as `pipe` in the other direction.
+     * Using an API with `pipe(next)` is very easy.
+     * Implementing the API with the point of view of the next one registering
+     * a source is easier, see the ZipFileWorker.
+     * @param {Worker} previous the previous worker, sending events to this one
+     * @return {Worker} the current worker for chainability
+     */
+    registerPrevious : function (previous) {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+
+        // sharing the streamInfo...
+        this.streamInfo = previous.streamInfo;
+        // ... and adding our own bits
+        this.mergeStreamInfo();
+        this.previous =  previous;
+        var self = this;
+        previous.on('data', function (chunk) {
+            self.processChunk(chunk);
+        });
+        previous.on('end', function () {
+            self.end();
+        });
+        previous.on('error', function (e) {
+            self.error(e);
+        });
+        return this;
+    },
+    /**
+     * Pause the stream so it doesn't send events anymore.
+     * @return {Boolean} true if this call paused the worker, false otherwise.
+     */
+    pause : function () {
+        if(this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = true;
+
+        if(this.previous) {
+            this.previous.pause();
+        }
+        return true;
+    },
+    /**
+     * Resume a paused stream.
+     * @return {Boolean} true if this call resumed the worker, false otherwise.
+     */
+    resume : function () {
+        if(!this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = false;
+
+        // if true, the worker tried to resume but failed
+        var withError = false;
+        if(this.generatedError) {
+            this.error(this.generatedError);
+            withError = true;
+        }
+        if(this.previous) {
+            this.previous.resume();
+        }
+
+        return !withError;
+    },
+    /**
+     * Flush any remaining bytes as the stream is ending.
+     */
+    flush : function () {},
+    /**
+     * Process a chunk. This is usually the method overridden.
+     * @param {Object} chunk the chunk to process.
+     */
+    processChunk : function(chunk) {
+        this.push(chunk);
+    },
+    /**
+     * Add a key/value to be added in the workers chain streamInfo once activated.
+     * @param {String} key the key to use
+     * @param {Object} value the associated value
+     * @return {Worker} the current worker for chainability
+     */
+    withStreamInfo : function (key, value) {
+        this.extraStreamInfo[key] = value;
+        this.mergeStreamInfo();
+        return this;
+    },
+    /**
+     * Merge this worker's streamInfo into the chain's streamInfo.
+     */
+    mergeStreamInfo : function () {
+        for(var key in this.extraStreamInfo) {
+            if (!this.extraStreamInfo.hasOwnProperty(key)) {
+                continue;
+            }
+            this.streamInfo[key] = this.extraStreamInfo[key];
+        }
+    },
+
+    /**
+     * Lock the stream to prevent further updates on the workers chain.
+     * After calling this method, all calls to pipe will fail.
+     */
+    lock: function () {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+        this.isLocked = true;
+        if (this.previous) {
+            this.previous.lock();
+        }
+    },
+
+    /**
+     *
+     * Pretty print the workers chain.
+     */
+    toString : function () {
+        var me = "Worker " + this.name;
+        if (this.previous) {
+            return this.previous + " -> " + me;
+        } else {
+            return me;
+        }
+    }
+};
+
+module.exports = GenericWorker;
+
+},{}],29:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var ConvertWorker = require('./ConvertWorker');
+var GenericWorker = require('./GenericWorker');
+var base64 = require('../base64');
+var support = require("../support");
+var external = require("../external");
+
+var NodejsStreamOutputAdapter = null;
+if (support.nodestream) {
+    try {
+        NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');
+    } catch(e) {}
+}
+
+/**
+ * Apply the final transformation of the data. If the user wants a Blob for
+ * example, it's easier to work with an U8intArray and finally do the
+ * ArrayBuffer/Blob conversion.
+ * @param {String} type the name of the final type
+ * @param {String|Uint8Array|Buffer} content the content to transform
+ * @param {String} mimeType the mime type of the content, if applicable.
+ * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.
+ */
+function transformZipOutput(type, content, mimeType) {
+    switch(type) {
+        case "blob" :
+            return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
+        case "base64" :
+            return base64.encode(content);
+        default :
+            return utils.transformTo(type, content);
+    }
+}
+
+/**
+ * Concatenate an array of data of the given type.
+ * @param {String} type the type of the data in the given array.
+ * @param {Array} dataArray the array containing the data chunks to concatenate
+ * @return {String|Uint8Array|Buffer} the concatenated data
+ * @throws Error if the asked type is unsupported
+ */
+function concat (type, dataArray) {
+    var i, index = 0, res = null, totalLength = 0;
+    for(i = 0; i < dataArray.length; i++) {
+        totalLength += dataArray[i].length;
+    }
+    switch(type) {
+        case "string":
+            return dataArray.join("");
+          case "array":
+            return Array.prototype.concat.apply([], dataArray);
+        case "uint8array":
+            res = new Uint8Array(totalLength);
+            for(i = 0; i < dataArray.length; i++) {
+                res.set(dataArray[i], index);
+                index += dataArray[i].length;
+            }
+            return res;
+        case "nodebuffer":
+            return Buffer.concat(dataArray);
+        default:
+            throw new Error("concat : unsupported type '"  + type + "'");
+    }
+}
+
+/**
+ * Listen a StreamHelper, accumulate its content and concatenate it into a
+ * complete block.
+ * @param {StreamHelper} helper the helper to use.
+ * @param {Function} updateCallback a callback called on each update. Called
+ * with one arg :
+ * - the metadata linked to the update received.
+ * @return Promise the promise for the accumulation.
+ */
+function accumulate(helper, updateCallback) {
+    return new external.Promise(function (resolve, reject){
+        var dataArray = [];
+        var chunkType = helper._internalType,
+            resultType = helper._outputType,
+            mimeType = helper._mimeType;
+        helper
+        .on('data', function (data, meta) {
+            dataArray.push(data);
+            if(updateCallback) {
+                updateCallback(meta);
+            }
+        })
+        .on('error', function(err) {
+            dataArray = [];
+            reject(err);
+        })
+        .on('end', function (){
+            try {
+                var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
+                resolve(result);
+            } catch (e) {
+                reject(e);
+            }
+            dataArray = [];
+        })
+        .resume();
+    });
+}
+
+/**
+ * An helper to easily use workers outside of JSZip.
+ * @constructor
+ * @param {Worker} worker the worker to wrap
+ * @param {String} outputType the type of data expected by the use
+ * @param {String} mimeType the mime type of the content, if applicable.
+ */
+function StreamHelper(worker, outputType, mimeType) {
+    var internalType = outputType;
+    switch(outputType) {
+        case "blob":
+        case "arraybuffer":
+            internalType = "uint8array";
+        break;
+        case "base64":
+            internalType = "string";
+        break;
+    }
+
+    try {
+        // the type used internally
+        this._internalType = internalType;
+        // the type used to output results
+        this._outputType = outputType;
+        // the mime type
+        this._mimeType = mimeType;
+        utils.checkSupport(internalType);
+        this._worker = worker.pipe(new ConvertWorker(internalType));
+        // the last workers can be rewired without issues but we need to
+        // prevent any updates on previous workers.
+        worker.lock();
+    } catch(e) {
+        this._worker = new GenericWorker("error");
+        this._worker.error(e);
+    }
+}
+
+StreamHelper.prototype = {
+    /**
+     * Listen a StreamHelper, accumulate its content and concatenate it into a
+     * complete block.
+     * @param {Function} updateCb the update callback.
+     * @return Promise the promise for the accumulation.
+     */
+    accumulate : function (updateCb) {
+        return accumulate(this, updateCb);
+    },
+    /**
+     * Add a listener on an event triggered on a stream.
+     * @param {String} evt the name of the event
+     * @param {Function} fn the listener
+     * @return {StreamHelper} the current helper.
+     */
+    on : function (evt, fn) {
+        var self = this;
+
+        if(evt === "data") {
+            this._worker.on(evt, function (chunk) {
+                fn.call(self, chunk.data, chunk.meta);
+            });
+        } else {
+            this._worker.on(evt, function () {
+                utils.delay(fn, arguments, self);
+            });
+        }
+        return this;
+    },
+    /**
+     * Resume the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    resume : function () {
+        utils.delay(this._worker.resume, [], this._worker);
+        return this;
+    },
+    /**
+     * Pause the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    pause : function () {
+        this._worker.pause();
+        return this;
+    },
+    /**
+     * Return a nodejs stream for this helper.
+     * @param {Function} updateCb the update callback.
+     * @return {NodejsStreamOutputAdapter} the nodejs stream.
+     */
+    toNodejsStream : function (updateCb) {
+        utils.checkSupport("nodestream");
+        if (this._outputType !== "nodebuffer") {
+            // an object stream containing blob/arraybuffer/uint8array/string
+            // is strange and I don't know if it would be useful.
+            // I you find this comment and have a good usecase, please open a
+            // bug report !
+            throw new Error(this._outputType + " is not supported by this method");
+        }
+
+        return new NodejsStreamOutputAdapter(this, {
+            objectMode : this._outputType !== "nodebuffer"
+        }, updateCb);
+    }
+};
+
+
+module.exports = StreamHelper;
+
+},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){
+'use strict';
+
+exports.base64 = true;
+exports.array = true;
+exports.string = true;
+exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined";
+exports.nodebuffer = typeof Buffer !== "undefined";
+// contains true if JSZip can read/generate Uint8Array, false otherwise.
+exports.uint8array = typeof Uint8Array !== "undefined";
+
+if (typeof ArrayBuffer === "undefined") {
+    exports.blob = false;
+}
+else {
+    var buffer = new ArrayBuffer(0);
+    try {
+        exports.blob = new Blob([buffer], {
+            type: "application/zip"
+        }).size === 0;
+    }
+    catch (e) {
+        try {
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(buffer);
+            exports.blob = builder.getBlob('application/zip').size === 0;
+        }
+        catch (e) {
+            exports.blob = false;
+        }
+    }
+}
+
+try {
+    exports.nodestream = !!require('readable-stream').Readable;
+} catch(e) {
+    exports.nodestream = false;
+}
+
+},{"readable-stream":16}],31:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+var support = require('./support');
+var nodejsUtils = require('./nodejsUtils');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * The following functions come from pako, from pako/lib/utils/strings
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new Array(256);
+for (var i=0; i<256; i++) {
+  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
+}
+_utf8len[254]=_utf8len[254]=1; // Invalid sequence start
+
+// convert string to array (typed, when possible)
+var string2buf = function (str) {
+    var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+    // count binary size
+    for (m_pos = 0; m_pos < str_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+    }
+
+    // allocate buffer
+    if (support.uint8array) {
+        buf = new Uint8Array(buf_len);
+    } else {
+        buf = new Array(buf_len);
+    }
+
+    // convert
+    for (i=0, m_pos = 0; i < buf_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        if (c < 0x80) {
+            /* one byte */
+            buf[i++] = c;
+        } else if (c < 0x800) {
+            /* two bytes */
+            buf[i++] = 0xC0 | (c >>> 6);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else if (c < 0x10000) {
+            /* three bytes */
+            buf[i++] = 0xE0 | (c >>> 12);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else {
+            /* four bytes */
+            buf[i++] = 0xf0 | (c >>> 18);
+            buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        }
+    }
+
+    return buf;
+};
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+var utf8border = function(buf, max) {
+    var pos;
+
+    max = max || buf.length;
+    if (max > buf.length) { max = buf.length; }
+
+    // go back from last position, until start of sequence found
+    pos = max-1;
+    while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+    // Fuckup - very small and broken sequence,
+    // return max, because we should return something anyway.
+    if (pos < 0) { return max; }
+
+    // If we came to start of buffer - that means vuffer is too small,
+    // return max too.
+    if (pos === 0) { return max; }
+
+    return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+// convert array to string
+var buf2string = function (buf) {
+    var str, i, out, c, c_len;
+    var len = buf.length;
+
+    // Reserve max possible length (2 words per char)
+    // NB: by unknown reasons, Array is significantly faster for
+    //     String.fromCharCode.apply than Uint16Array.
+    var utf16buf = new Array(len*2);
+
+    for (out=0, i=0; i<len;) {
+        c = buf[i++];
+        // quick process ascii
+        if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+        c_len = _utf8len[c];
+        // skip 5 & 6 byte codes
+        if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }
+
+        // apply mask on first byte
+        c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+        // join the rest
+        while (c_len > 1 && i < len) {
+            c = (c << 6) | (buf[i++] & 0x3f);
+            c_len--;
+        }
+
+        // terminated by end of string?
+        if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+        if (c < 0x10000) {
+            utf16buf[out++] = c;
+        } else {
+            c -= 0x10000;
+            utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+            utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+        }
+    }
+
+    // shrinkBuf(utf16buf, out)
+    if (utf16buf.length !== out) {
+        if(utf16buf.subarray) {
+            utf16buf = utf16buf.subarray(0, out);
+        } else {
+            utf16buf.length = out;
+        }
+    }
+
+    // return String.fromCharCode.apply(null, utf16buf);
+    return utils.applyFromCharCode(utf16buf);
+};
+
+
+// That's all for the pako functions.
+
+
+/**
+ * Transform a javascript string into an array (typed if possible) of bytes,
+ * UTF-8 encoded.
+ * @param {String} str the string to encode
+ * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.
+ */
+exports.utf8encode = function utf8encode(str) {
+    if (support.nodebuffer) {
+        return nodejsUtils.newBufferFrom(str, "utf-8");
+    }
+
+    return string2buf(str);
+};
+
+
+/**
+ * Transform a bytes array (or a representation) representing an UTF-8 encoded
+ * string into a javascript string.
+ * @param {Array|Uint8Array|Buffer} buf the data de decode
+ * @return {String} the decoded string.
+ */
+exports.utf8decode = function utf8decode(buf) {
+    if (support.nodebuffer) {
+        return utils.transformTo("nodebuffer", buf).toString("utf-8");
+    }
+
+    buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf);
+
+    return buf2string(buf);
+};
+
+/**
+ * A worker to decode utf8 encoded binary chunks into string chunks.
+ * @constructor
+ */
+function Utf8DecodeWorker() {
+    GenericWorker.call(this, "utf-8 decode");
+    // the last bytes if a chunk didn't end with a complete codepoint.
+    this.leftOver = null;
+}
+utils.inherits(Utf8DecodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8DecodeWorker.prototype.processChunk = function (chunk) {
+
+    var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data);
+
+    // 1st step, re-use what's left of the previous chunk
+    if (this.leftOver && this.leftOver.length) {
+        if(support.uint8array) {
+            var previousData = data;
+            data = new Uint8Array(previousData.length + this.leftOver.length);
+            data.set(this.leftOver, 0);
+            data.set(previousData, this.leftOver.length);
+        } else {
+            data = this.leftOver.concat(data);
+        }
+        this.leftOver = null;
+    }
+
+    var nextBoundary = utf8border(data);
+    var usableData = data;
+    if (nextBoundary !== data.length) {
+        if (support.uint8array) {
+            usableData = data.subarray(0, nextBoundary);
+            this.leftOver = data.subarray(nextBoundary, data.length);
+        } else {
+            usableData = data.slice(0, nextBoundary);
+            this.leftOver = data.slice(nextBoundary, data.length);
+        }
+    }
+
+    this.push({
+        data : exports.utf8decode(usableData),
+        meta : chunk.meta
+    });
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+Utf8DecodeWorker.prototype.flush = function () {
+    if(this.leftOver && this.leftOver.length) {
+        this.push({
+            data : exports.utf8decode(this.leftOver),
+            meta : {}
+        });
+        this.leftOver = null;
+    }
+};
+exports.Utf8DecodeWorker = Utf8DecodeWorker;
+
+/**
+ * A worker to endcode string chunks into utf8 encoded binary chunks.
+ * @constructor
+ */
+function Utf8EncodeWorker() {
+    GenericWorker.call(this, "utf-8 encode");
+}
+utils.inherits(Utf8EncodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8EncodeWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : exports.utf8encode(chunk.data),
+        meta : chunk.meta
+    });
+};
+exports.Utf8EncodeWorker = Utf8EncodeWorker;
+
+},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){
+'use strict';
+
+var support = require('./support');
+var base64 = require('./base64');
+var nodejsUtils = require('./nodejsUtils');
+var setImmediate = require('core-js/library/fn/set-immediate');
+var external = require("./external");
+
+
+/**
+ * Convert a string that pass as a "binary string": it should represent a byte
+ * array but may have > 255 char codes. Be sure to take only the first byte
+ * and returns the byte array.
+ * @param {String} str the string to transform.
+ * @return {Array|Uint8Array} the string in a binary format.
+ */
+function string2binary(str) {
+    var result = null;
+    if (support.uint8array) {
+      result = new Uint8Array(str.length);
+    } else {
+      result = new Array(str.length);
+    }
+    return stringToArrayLike(str, result);
+}
+
+/**
+ * Create a new blob with the given content and the given type.
+ * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use
+ * an Uint8Array because the stock browser of android 4 won't accept it (it
+ * will be silently converted to a string, "[object Uint8Array]").
+ *
+ * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:
+ * when a large amount of Array is used to create the Blob, the amount of
+ * memory consumed is nearly 100 times the original data amount.
+ *
+ * @param {String} type the mime type of the blob.
+ * @return {Blob} the created blob.
+ */
+exports.newBlob = function(part, type) {
+    exports.checkSupport("blob");
+
+    try {
+        // Blob constructor
+        return new Blob([part], {
+            type: type
+        });
+    }
+    catch (e) {
+
+        try {
+            // deprecated, browser only, old way
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(part);
+            return builder.getBlob(type);
+        }
+        catch (e) {
+
+            // well, fuck ?!
+            throw new Error("Bug : can't construct the Blob.");
+        }
+    }
+
+
+};
+/**
+ * The identity function.
+ * @param {Object} input the input.
+ * @return {Object} the same input.
+ */
+function identity(input) {
+    return input;
+}
+
+/**
+ * Fill in an array with a string.
+ * @param {String} str the string to use.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.
+ */
+function stringToArrayLike(str, array) {
+    for (var i = 0; i < str.length; ++i) {
+        array[i] = str.charCodeAt(i) & 0xFF;
+    }
+    return array;
+}
+
+/**
+ * An helper for the function arrayLikeToString.
+ * This contains static informations and functions that
+ * can be optimized by the browser JIT compiler.
+ */
+var arrayToStringHelper = {
+    /**
+     * Transform an array of int into a string, chunk by chunk.
+     * See the performances notes on arrayLikeToString.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @param {String} type the type of the array.
+     * @param {Integer} chunk the chunk size.
+     * @return {String} the resulting string.
+     * @throws Error if the chunk is too big for the stack.
+     */
+    stringifyByChunk: function(array, type, chunk) {
+        var result = [], k = 0, len = array.length;
+        // shortcut
+        if (len <= chunk) {
+            return String.fromCharCode.apply(null, array);
+        }
+        while (k < len) {
+            if (type === "array" || type === "nodebuffer") {
+                result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));
+            }
+            else {
+                result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));
+            }
+            k += chunk;
+        }
+        return result.join("");
+    },
+    /**
+     * Call String.fromCharCode on every item in the array.
+     * This is the naive implementation, which generate A LOT of intermediate string.
+     * This should be used when everything else fail.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @return {String} the result.
+     */
+    stringifyByChar: function(array){
+        var resultStr = "";
+        for(var i = 0; i < array.length; i++) {
+            resultStr += String.fromCharCode(array[i]);
+        }
+        return resultStr;
+    },
+    applyCanBeUsed : {
+        /**
+         * true if the browser accepts to use String.fromCharCode on Uint8Array
+         */
+        uint8array : (function () {
+            try {
+                return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })(),
+        /**
+         * true if the browser accepts to use String.fromCharCode on nodejs Buffer.
+         */
+        nodebuffer : (function () {
+            try {
+                return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })()
+    }
+};
+
+/**
+ * Transform an array-like object to a string.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+ * @return {String} the result.
+ */
+function arrayLikeToString(array) {
+    // Performances notes :
+    // --------------------
+    // String.fromCharCode.apply(null, array) is the fastest, see
+    // see http://jsperf.com/converting-a-uint8array-to-a-string/2
+    // but the stack is limited (and we can get huge arrays !).
+    //
+    // result += String.fromCharCode(array[i]); generate too many strings !
+    //
+    // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2
+    // TODO : we now have workers that split the work. Do we still need that ?
+    var chunk = 65536,
+        type = exports.getTypeOf(array),
+        canUseApply = true;
+    if (type === "uint8array") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;
+    } else if (type === "nodebuffer") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;
+    }
+
+    if (canUseApply) {
+        while (chunk > 1) {
+            try {
+                return arrayToStringHelper.stringifyByChunk(array, type, chunk);
+            } catch (e) {
+                chunk = Math.floor(chunk / 2);
+            }
+        }
+    }
+
+    // no apply or chunk error : slow and painful algorithm
+    // default browser on android 4.*
+    return arrayToStringHelper.stringifyByChar(array);
+}
+
+exports.applyFromCharCode = arrayLikeToString;
+
+
+/**
+ * Copy the data from an array-like to an other array-like.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.
+ */
+function arrayLikeToArrayLike(arrayFrom, arrayTo) {
+    for (var i = 0; i < arrayFrom.length; i++) {
+        arrayTo[i] = arrayFrom[i];
+    }
+    return arrayTo;
+}
+
+// a matrix containing functions to transform everything into everything.
+var transform = {};
+
+// string to ?
+transform["string"] = {
+    "string": identity,
+    "array": function(input) {
+        return stringToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["string"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return stringToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": function(input) {
+        return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length));
+    }
+};
+
+// array to ?
+transform["array"] = {
+    "string": arrayLikeToString,
+    "array": identity,
+    "arraybuffer": function(input) {
+        return (new Uint8Array(input)).buffer;
+    },
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// arraybuffer to ?
+transform["arraybuffer"] = {
+    "string": function(input) {
+        return arrayLikeToString(new Uint8Array(input));
+    },
+    "array": function(input) {
+        return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));
+    },
+    "arraybuffer": identity,
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(new Uint8Array(input));
+    }
+};
+
+// uint8array to ?
+transform["uint8array"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return input.buffer;
+    },
+    "uint8array": identity,
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// nodebuffer to ?
+transform["nodebuffer"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["nodebuffer"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return arrayLikeToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": identity
+};
+
+/**
+ * Transform an input into any type.
+ * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.
+ * If no output type is specified, the unmodified input will be returned.
+ * @param {String} outputType the output type.
+ * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.
+ * @throws {Error} an Error if the browser doesn't support the requested output type.
+ */
+exports.transformTo = function(outputType, input) {
+    if (!input) {
+        // undefined, null, etc
+        // an empty string won't harm.
+        input = "";
+    }
+    if (!outputType) {
+        return input;
+    }
+    exports.checkSupport(outputType);
+    var inputType = exports.getTypeOf(input);
+    var result = transform[inputType][outputType](input);
+    return result;
+};
+
+/**
+ * Return the type of the input.
+ * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.
+ * @param {Object} input the input to identify.
+ * @return {String} the (lowercase) type of the input.
+ */
+exports.getTypeOf = function(input) {
+    if (typeof input === "string") {
+        return "string";
+    }
+    if (Object.prototype.toString.call(input) === "[object Array]") {
+        return "array";
+    }
+    if (support.nodebuffer && nodejsUtils.isBuffer(input)) {
+        return "nodebuffer";
+    }
+    if (support.uint8array && input instanceof Uint8Array) {
+        return "uint8array";
+    }
+    if (support.arraybuffer && input instanceof ArrayBuffer) {
+        return "arraybuffer";
+    }
+};
+
+/**
+ * Throw an exception if the type is not supported.
+ * @param {String} type the type to check.
+ * @throws {Error} an Error if the browser doesn't support the requested type.
+ */
+exports.checkSupport = function(type) {
+    var supported = support[type.toLowerCase()];
+    if (!supported) {
+        throw new Error(type + " is not supported by this platform");
+    }
+};
+
+exports.MAX_VALUE_16BITS = 65535;
+exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1
+
+/**
+ * Prettify a string read as binary.
+ * @param {string} str the string to prettify.
+ * @return {string} a pretty string.
+ */
+exports.pretty = function(str) {
+    var res = '',
+        code, i;
+    for (i = 0; i < (str || "").length; i++) {
+        code = str.charCodeAt(i);
+        res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
+    }
+    return res;
+};
+
+/**
+ * Defer the call of a function.
+ * @param {Function} callback the function to call asynchronously.
+ * @param {Array} args the arguments to give to the callback.
+ */
+exports.delay = function(callback, args, self) {
+    setImmediate(function () {
+        callback.apply(self || null, args || []);
+    });
+};
+
+/**
+ * Extends a prototype with an other, without calling a constructor with
+ * side effects. Inspired by nodejs' `utils.inherits`
+ * @param {Function} ctor the constructor to augment
+ * @param {Function} superCtor the parent constructor to use
+ */
+exports.inherits = function (ctor, superCtor) {
+    var Obj = function() {};
+    Obj.prototype = superCtor.prototype;
+    ctor.prototype = new Obj();
+};
+
+/**
+ * Merge the objects passed as parameters into a new one.
+ * @private
+ * @param {...Object} var_args All objects to merge.
+ * @return {Object} a new object with the data of the others.
+ */
+exports.extend = function() {
+    var result = {}, i, attr;
+    for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers
+        for (attr in arguments[i]) {
+            if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") {
+                result[attr] = arguments[i][attr];
+            }
+        }
+    }
+    return result;
+};
+
+/**
+ * Transform arbitrary content into a Promise.
+ * @param {String} name a name for the content being processed.
+ * @param {Object} inputData the content to process.
+ * @param {Boolean} isBinary true if the content is not an unicode string
+ * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.
+ * @param {Boolean} isBase64 true if the string content is encoded with base64.
+ * @return {Promise} a promise in a format usable by JSZip.
+ */
+exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {
+
+    // if inputData is already a promise, this flatten it.
+    var promise = external.Promise.resolve(inputData).then(function(data) {
+        
+        
+        var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);
+
+        if (isBlob && typeof FileReader !== "undefined") {
+            return new external.Promise(function (resolve, reject) {
+                var reader = new FileReader();
+
+                reader.onload = function(e) {
+                    resolve(e.target.result);
+                };
+                reader.onerror = function(e) {
+                    reject(e.target.error);
+                };
+                reader.readAsArrayBuffer(data);
+            });
+        } else {
+            return data;
+        }
+    });
+
+    return promise.then(function(data) {
+        var dataType = exports.getTypeOf(data);
+
+        if (!dataType) {
+            return external.Promise.reject(
+                new Error("Can't read the data of '" + name + "'. Is it " +
+                          "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")
+            );
+        }
+        // special case : it's way easier to work with Uint8Array than with ArrayBuffer
+        if (dataType === "arraybuffer") {
+            data = exports.transformTo("uint8array", data);
+        } else if (dataType === "string") {
+            if (isBase64) {
+                data = base64.decode(data);
+            }
+            else if (isBinary) {
+                // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask
+                if (isOptimizedBinaryString !== true) {
+                    // this is a string, not in a base64 format.
+                    // Be sure that this is a correct "binary string"
+                    data = string2binary(data);
+                }
+            }
+        }
+        return data;
+    });
+};
+
+},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var sig = require('./signature');
+var ZipEntry = require('./zipEntry');
+var utf8 = require('./utf8');
+var support = require('./support');
+//  class ZipEntries {{{
+/**
+ * All the entries in the zip file.
+ * @constructor
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntries(loadOptions) {
+    this.files = [];
+    this.loadOptions = loadOptions;
+}
+ZipEntries.prototype = {
+    /**
+     * Check that the reader is on the specified signature.
+     * @param {string} expectedSignature the expected signature.
+     * @throws {Error} if it is an other signature.
+     */
+    checkSignature: function(expectedSignature) {
+        if (!this.reader.readAndCheckSignature(expectedSignature)) {
+            this.reader.index -= 4;
+            var signature = this.reader.readString(4);
+            throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")");
+        }
+    },
+    /**
+     * Check if the given signature is at the given index.
+     * @param {number} askedIndex the index to check.
+     * @param {string} expectedSignature the signature to expect.
+     * @return {boolean} true if the signature is here, false otherwise.
+     */
+    isSignature: function(askedIndex, expectedSignature) {
+        var currentIndex = this.reader.index;
+        this.reader.setIndex(askedIndex);
+        var signature = this.reader.readString(4);
+        var result = signature === expectedSignature;
+        this.reader.setIndex(currentIndex);
+        return result;
+    },
+    /**
+     * Read the end of the central directory.
+     */
+    readBlockEndOfCentral: function() {
+        this.diskNumber = this.reader.readInt(2);
+        this.diskWithCentralDirStart = this.reader.readInt(2);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(2);
+        this.centralDirRecords = this.reader.readInt(2);
+        this.centralDirSize = this.reader.readInt(4);
+        this.centralDirOffset = this.reader.readInt(4);
+
+        this.zipCommentLength = this.reader.readInt(2);
+        // warning : the encoding depends of the system locale
+        // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.
+        // On a windows machine, this field is encoded with the localized windows code page.
+        var zipComment = this.reader.readData(this.zipCommentLength);
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        // To get consistent behavior with the generation part, we will assume that
+        // this is utf8 encoded unless specified otherwise.
+        var decodeContent = utils.transformTo(decodeParamType, zipComment);
+        this.zipComment = this.loadOptions.decodeFileName(decodeContent);
+    },
+    /**
+     * Read the end of the Zip 64 central directory.
+     * Not merged with the method readEndOfCentral :
+     * The end of central can coexist with its Zip64 brother,
+     * I don't want to read the wrong number of bytes !
+     */
+    readBlockZip64EndOfCentral: function() {
+        this.zip64EndOfCentralSize = this.reader.readInt(8);
+        this.reader.skip(4);
+        // this.versionMadeBy = this.reader.readString(2);
+        // this.versionNeeded = this.reader.readInt(2);
+        this.diskNumber = this.reader.readInt(4);
+        this.diskWithCentralDirStart = this.reader.readInt(4);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(8);
+        this.centralDirRecords = this.reader.readInt(8);
+        this.centralDirSize = this.reader.readInt(8);
+        this.centralDirOffset = this.reader.readInt(8);
+
+        this.zip64ExtensibleData = {};
+        var extraDataSize = this.zip64EndOfCentralSize - 44,
+            index = 0,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+        while (index < extraDataSize) {
+            extraFieldId = this.reader.readInt(2);
+            extraFieldLength = this.reader.readInt(4);
+            extraFieldValue = this.reader.readData(extraFieldLength);
+            this.zip64ExtensibleData[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Read the end of the Zip 64 central directory locator.
+     */
+    readBlockZip64EndOfCentralLocator: function() {
+        this.diskWithZip64CentralDirStart = this.reader.readInt(4);
+        this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);
+        this.disksCount = this.reader.readInt(4);
+        if (this.disksCount > 1) {
+            throw new Error("Multi-volumes zip are not supported");
+        }
+    },
+    /**
+     * Read the local files, based on the offset read in the central part.
+     */
+    readLocalFiles: function() {
+        var i, file;
+        for (i = 0; i < this.files.length; i++) {
+            file = this.files[i];
+            this.reader.setIndex(file.localHeaderOffset);
+            this.checkSignature(sig.LOCAL_FILE_HEADER);
+            file.readLocalPart(this.reader);
+            file.handleUTF8();
+            file.processAttributes();
+        }
+    },
+    /**
+     * Read the central directory.
+     */
+    readCentralDir: function() {
+        var file;
+
+        this.reader.setIndex(this.centralDirOffset);
+        while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) {
+            file = new ZipEntry({
+                zip64: this.zip64
+            }, this.loadOptions);
+            file.readCentralPart(this.reader);
+            this.files.push(file);
+        }
+
+        if (this.centralDirRecords !== this.files.length) {
+            if (this.centralDirRecords !== 0 && this.files.length === 0) {
+                // We expected some records but couldn't find ANY.
+                // This is really suspicious, as if something went wrong.
+                throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
+            } else {
+                // We found some records but not all.
+                // Something is wrong but we got something for the user: no error here.
+                // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length);
+            }
+        }
+    },
+    /**
+     * Read the end of central directory.
+     */
+    readEndOfCentral: function() {
+        var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);
+        if (offset < 0) {
+            // Check if the content is a truncated zip or complete garbage.
+            // A "LOCAL_FILE_HEADER" is not required at the beginning (auto
+            // extractible zip for example) but it can give a good hint.
+            // If an ajax request was used without responseType, we will also
+            // get unreadable data.
+            var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER);
+
+            if (isGarbage) {
+                throw new Error("Can't find end of central directory : is this a zip file ? " +
+                                "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");
+            } else {
+                throw new Error("Corrupted zip: can't find end of central directory");
+            }
+
+        }
+        this.reader.setIndex(offset);
+        var endOfCentralDirOffset = offset;
+        this.checkSignature(sig.CENTRAL_DIRECTORY_END);
+        this.readBlockEndOfCentral();
+
+
+        /* extract from the zip spec :
+            4)  If one of the fields in the end of central directory
+                record is too small to hold required data, the field
+                should be set to -1 (0xFFFF or 0xFFFFFFFF) and the
+                ZIP64 format record should be created.
+            5)  The end of central directory record and the
+                Zip64 end of central directory locator record must
+                reside on the same disk when splitting or spanning
+                an archive.
+         */
+        if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {
+            this.zip64 = true;
+
+            /*
+            Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from
+            the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents
+            all numbers as 64-bit double precision IEEE 754 floating point numbers.
+            So, we have 53bits for integers and bitwise operations treat everything as 32bits.
+            see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators
+            and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5
+            */
+
+            // should look for a zip64 EOCD locator
+            offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            if (offset < 0) {
+                throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
+            }
+            this.reader.setIndex(offset);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            this.readBlockZip64EndOfCentralLocator();
+
+            // now the zip64 EOCD record
+            if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) {
+                // console.warn("ZIP64 end of central directory not where expected.");
+                this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+                if (this.relativeOffsetEndOfZip64CentralDir < 0) {
+                    throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
+                }
+            }
+            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+            this.readBlockZip64EndOfCentral();
+        }
+
+        var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize;
+        if (this.zip64) {
+            expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator
+            expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize;
+        }
+
+        var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset;
+
+        if (extraBytes > 0) {
+            // console.warn(extraBytes, "extra bytes at beginning or within zipfile");
+            if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) {
+                // The offsets seem wrong, but we have something at the specified offset.
+                // So… we keep it.
+            } else {
+                // the offset is wrong, update the "zero" of the reader
+                // this happens if data has been prepended (crx files for example)
+                this.reader.zero = extraBytes;
+            }
+        } else if (extraBytes < 0) {
+            throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes.");
+        }
+    },
+    prepareReader: function(data) {
+        this.reader = readerFor(data);
+    },
+    /**
+     * Read a zip file and create ZipEntries.
+     * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.
+     */
+    load: function(data) {
+        this.prepareReader(data);
+        this.readEndOfCentral();
+        this.readCentralDir();
+        this.readLocalFiles();
+    }
+};
+// }}} end of ZipEntries
+module.exports = ZipEntries;
+
+},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var CompressedObject = require('./compressedObject');
+var crc32fn = require('./crc32');
+var utf8 = require('./utf8');
+var compressions = require('./compressions');
+var support = require('./support');
+
+var MADE_BY_DOS = 0x00;
+var MADE_BY_UNIX = 0x03;
+
+/**
+ * Find a compression registered in JSZip.
+ * @param {string} compressionMethod the method magic to find.
+ * @return {Object|null} the JSZip compression object, null if none found.
+ */
+var findCompression = function(compressionMethod) {
+    for (var method in compressions) {
+        if (!compressions.hasOwnProperty(method)) {
+            continue;
+        }
+        if (compressions[method].magic === compressionMethod) {
+            return compressions[method];
+        }
+    }
+    return null;
+};
+
+// class ZipEntry {{{
+/**
+ * An entry in the zip file.
+ * @constructor
+ * @param {Object} options Options of the current file.
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntry(options, loadOptions) {
+    this.options = options;
+    this.loadOptions = loadOptions;
+}
+ZipEntry.prototype = {
+    /**
+     * say if the file is encrypted.
+     * @return {boolean} true if the file is encrypted, false otherwise.
+     */
+    isEncrypted: function() {
+        // bit 1 is set
+        return (this.bitFlag & 0x0001) === 0x0001;
+    },
+    /**
+     * say if the file has utf-8 filename/comment.
+     * @return {boolean} true if the filename/comment is in utf-8, false otherwise.
+     */
+    useUTF8: function() {
+        // bit 11 is set
+        return (this.bitFlag & 0x0800) === 0x0800;
+    },
+    /**
+     * Read the local part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readLocalPart: function(reader) {
+        var compression, localExtraFieldsLength;
+
+        // we already know everything from the central dir !
+        // If the central dir data are false, we are doomed.
+        // On the bright side, the local part is scary  : zip64, data descriptors, both, etc.
+        // The less data we get here, the more reliable this should be.
+        // Let's skip the whole header and dash to the data !
+        reader.skip(22);
+        // in some zip created on windows, the filename stored in the central dir contains \ instead of /.
+        // Strangely, the filename here is OK.
+        // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes
+        // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators...
+        // Search "unzip mismatching "local" filename continuing with "central" filename version" on
+        // the internet.
+        //
+        // I think I see the logic here : the central directory is used to display
+        // content and the local directory is used to extract the files. Mixing / and \
+        // may be used to display \ to windows users and use / when extracting the files.
+        // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394
+        this.fileNameLength = reader.readInt(2);
+        localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir
+        // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding.
+        this.fileName = reader.readData(this.fileNameLength);
+        reader.skip(localExtraFieldsLength);
+
+        if (this.compressedSize === -1 || this.uncompressedSize === -1) {
+            throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
+        }
+
+        compression = findCompression(this.compressionMethod);
+        if (compression === null) { // no compression found
+            throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")");
+        }
+        this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize));
+    },
+
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readCentralPart: function(reader) {
+        this.versionMadeBy = reader.readInt(2);
+        reader.skip(2);
+        // this.versionNeeded = reader.readInt(2);
+        this.bitFlag = reader.readInt(2);
+        this.compressionMethod = reader.readString(2);
+        this.date = reader.readDate();
+        this.crc32 = reader.readInt(4);
+        this.compressedSize = reader.readInt(4);
+        this.uncompressedSize = reader.readInt(4);
+        var fileNameLength = reader.readInt(2);
+        this.extraFieldsLength = reader.readInt(2);
+        this.fileCommentLength = reader.readInt(2);
+        this.diskNumberStart = reader.readInt(2);
+        this.internalFileAttributes = reader.readInt(2);
+        this.externalFileAttributes = reader.readInt(4);
+        this.localHeaderOffset = reader.readInt(4);
+
+        if (this.isEncrypted()) {
+            throw new Error("Encrypted zip are not supported");
+        }
+
+        // will be read in the local part, see the comments there
+        reader.skip(fileNameLength);
+        this.readExtraFields(reader);
+        this.parseZIP64ExtraField(reader);
+        this.fileComment = reader.readData(this.fileCommentLength);
+    },
+
+    /**
+     * Parse the external file attributes and get the unix/dos permissions.
+     */
+    processAttributes: function () {
+        this.unixPermissions = null;
+        this.dosPermissions = null;
+        var madeBy = this.versionMadeBy >> 8;
+
+        // Check if we have the DOS directory flag set.
+        // We look for it in the DOS and UNIX permissions
+        // but some unknown platform could set it as a compatibility flag.
+        this.dir = this.externalFileAttributes & 0x0010 ? true : false;
+
+        if(madeBy === MADE_BY_DOS) {
+            // first 6 bits (0 to 5)
+            this.dosPermissions = this.externalFileAttributes & 0x3F;
+        }
+
+        if(madeBy === MADE_BY_UNIX) {
+            this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF;
+            // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8);
+        }
+
+        // fail safe : if the name ends with a / it probably means a folder
+        if (!this.dir && this.fileNameStr.slice(-1) === '/') {
+            this.dir = true;
+        }
+    },
+
+    /**
+     * Parse the ZIP64 extra field and merge the info in the current ZipEntry.
+     * @param {DataReader} reader the reader to use.
+     */
+    parseZIP64ExtraField: function(reader) {
+
+        if (!this.extraFields[0x0001]) {
+            return;
+        }
+
+        // should be something, preparing the extra reader
+        var extraReader = readerFor(this.extraFields[0x0001].value);
+
+        // I really hope that these 64bits integer can fit in 32 bits integer, because js
+        // won't let us have more.
+        if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {
+            this.uncompressedSize = extraReader.readInt(8);
+        }
+        if (this.compressedSize === utils.MAX_VALUE_32BITS) {
+            this.compressedSize = extraReader.readInt(8);
+        }
+        if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {
+            this.localHeaderOffset = extraReader.readInt(8);
+        }
+        if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {
+            this.diskNumberStart = extraReader.readInt(4);
+        }
+    },
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readExtraFields: function(reader) {
+        var end = reader.index + this.extraFieldsLength,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+
+        if (!this.extraFields) {
+            this.extraFields = {};
+        }
+
+        while (reader.index < end) {
+            extraFieldId = reader.readInt(2);
+            extraFieldLength = reader.readInt(2);
+            extraFieldValue = reader.readData(extraFieldLength);
+
+            this.extraFields[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Apply an UTF8 transformation if needed.
+     */
+    handleUTF8: function() {
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        if (this.useUTF8()) {
+            this.fileNameStr = utf8.utf8decode(this.fileName);
+            this.fileCommentStr = utf8.utf8decode(this.fileComment);
+        } else {
+            var upath = this.findExtraFieldUnicodePath();
+            if (upath !== null) {
+                this.fileNameStr = upath;
+            } else {
+                // ASCII text or unsupported code page
+                var fileNameByteArray =  utils.transformTo(decodeParamType, this.fileName);
+                this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray);
+            }
+
+            var ucomment = this.findExtraFieldUnicodeComment();
+            if (ucomment !== null) {
+                this.fileCommentStr = ucomment;
+            } else {
+                // ASCII text or unsupported code page
+                var commentByteArray =  utils.transformTo(decodeParamType, this.fileComment);
+                this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray);
+            }
+        }
+    },
+
+    /**
+     * Find the unicode path declared in the extra field, if any.
+     * @return {String} the unicode path, null otherwise.
+     */
+    findExtraFieldUnicodePath: function() {
+        var upathField = this.extraFields[0x7075];
+        if (upathField) {
+            var extraReader = readerFor(upathField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the filename changed, this field is out of date.
+            if (crc32fn(this.fileName) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(upathField.length - 5));
+        }
+        return null;
+    },
+
+    /**
+     * Find the unicode comment declared in the extra field, if any.
+     * @return {String} the unicode comment, null otherwise.
+     */
+    findExtraFieldUnicodeComment: function() {
+        var ucommentField = this.extraFields[0x6375];
+        if (ucommentField) {
+            var extraReader = readerFor(ucommentField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the comment changed, this field is out of date.
+            if (crc32fn(this.fileComment) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(ucommentField.length - 5));
+        }
+        return null;
+    }
+};
+module.exports = ZipEntry;
+
+},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){
+'use strict';
+
+var StreamHelper = require('./stream/StreamHelper');
+var DataWorker = require('./stream/DataWorker');
+var utf8 = require('./utf8');
+var CompressedObject = require('./compressedObject');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * A simple object representing a file in the zip file.
+ * @constructor
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data
+ * @param {Object} options the options of the file
+ */
+var ZipObject = function(name, data, options) {
+    this.name = name;
+    this.dir = options.dir;
+    this.date = options.date;
+    this.comment = options.comment;
+    this.unixPermissions = options.unixPermissions;
+    this.dosPermissions = options.dosPermissions;
+
+    this._data = data;
+    this._dataBinary = options.binary;
+    // keep only the compression
+    this.options = {
+        compression : options.compression,
+        compressionOptions : options.compressionOptions
+    };
+};
+
+ZipObject.prototype = {
+    /**
+     * Create an internal stream for the content of this object.
+     * @param {String} type the type of each chunk.
+     * @return StreamHelper the stream.
+     */
+    internalStream: function (type) {
+        var result = null, outputType = "string";
+        try {
+            if (!type) {
+                throw new Error("No output type specified.");
+            }
+            outputType = type.toLowerCase();
+            var askUnicodeString = outputType === "string" || outputType === "text";
+            if (outputType === "binarystring" || outputType === "text") {
+                outputType = "string";
+            }
+            result = this._decompressWorker();
+
+            var isUnicodeString = !this._dataBinary;
+
+            if (isUnicodeString && !askUnicodeString) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            if (!isUnicodeString && askUnicodeString) {
+                result = result.pipe(new utf8.Utf8DecodeWorker());
+            }
+        } catch (e) {
+            result = new GenericWorker("error");
+            result.error(e);
+        }
+
+        return new StreamHelper(result, outputType, "");
+    },
+
+    /**
+     * Prepare the content in the asked type.
+     * @param {String} type the type of the result.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Promise the promise of the result.
+     */
+    async: function (type, onUpdate) {
+        return this.internalStream(type).accumulate(onUpdate);
+    },
+
+    /**
+     * Prepare the content as a nodejs stream.
+     * @param {String} type the type of each chunk.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Stream the stream.
+     */
+    nodeStream: function (type, onUpdate) {
+        return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate);
+    },
+
+    /**
+     * Return a worker for the compressed content.
+     * @private
+     * @param {Object} compression the compression object to use.
+     * @param {Object} compressionOptions the options to use when compressing.
+     * @return Worker the worker.
+     */
+    _compressWorker: function (compression, compressionOptions) {
+        if (
+            this._data instanceof CompressedObject &&
+            this._data.compression.magic === compression.magic
+        ) {
+            return this._data.getCompressedWorker();
+        } else {
+            var result = this._decompressWorker();
+            if(!this._dataBinary) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            return CompressedObject.createWorkerFrom(result, compression, compressionOptions);
+        }
+    },
+    /**
+     * Return a worker for the decompressed content.
+     * @private
+     * @return Worker the worker.
+     */
+    _decompressWorker : function () {
+        if (this._data instanceof CompressedObject) {
+            return this._data.getContentWorker();
+        } else if (this._data instanceof GenericWorker) {
+            return this._data;
+        } else {
+            return new DataWorker(this._data);
+        }
+    }
+};
+
+var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"];
+var removedFn = function () {
+    throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+};
+
+for(var i = 0; i < removedMethods.length; i++) {
+    ZipObject.prototype[removedMethods[i]] = removedFn;
+}
+module.exports = ZipObject;
+
+},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){
+require('../modules/web.immediate');
+module.exports = require('../modules/_core').setImmediate;
+},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){
+module.exports = function(it){
+  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+  return it;
+};
+},{}],38:[function(require,module,exports){
+var isObject = require('./_is-object');
+module.exports = function(it){
+  if(!isObject(it))throw TypeError(it + ' is not an object!');
+  return it;
+};
+},{"./_is-object":51}],39:[function(require,module,exports){
+var toString = {}.toString;
+
+module.exports = function(it){
+  return toString.call(it).slice(8, -1);
+};
+},{}],40:[function(require,module,exports){
+var core = module.exports = {version: '2.3.0'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],41:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./_a-function');
+module.exports = function(fn, that, length){
+  aFunction(fn);
+  if(that === undefined)return fn;
+  switch(length){
+    case 1: return function(a){
+      return fn.call(that, a);
+    };
+    case 2: return function(a, b){
+      return fn.call(that, a, b);
+    };
+    case 3: return function(a, b, c){
+      return fn.call(that, a, b, c);
+    };
+  }
+  return function(/* ...args */){
+    return fn.apply(that, arguments);
+  };
+};
+},{"./_a-function":37}],42:[function(require,module,exports){
+// Thank's IE8 for his funny defineProperty
+module.exports = !require('./_fails')(function(){
+  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_fails":45}],43:[function(require,module,exports){
+var isObject = require('./_is-object')
+  , document = require('./_global').document
+  // in old IE typeof document.createElement is 'object'
+  , is = isObject(document) && isObject(document.createElement);
+module.exports = function(it){
+  return is ? document.createElement(it) : {};
+};
+},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){
+var global    = require('./_global')
+  , core      = require('./_core')
+  , ctx       = require('./_ctx')
+  , hide      = require('./_hide')
+  , PROTOTYPE = 'prototype';
+
+var $export = function(type, name, source){
+  var IS_FORCED = type & $export.F
+    , IS_GLOBAL = type & $export.G
+    , IS_STATIC = type & $export.S
+    , IS_PROTO  = type & $export.P
+    , IS_BIND   = type & $export.B
+    , IS_WRAP   = type & $export.W
+    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+    , expProto  = exports[PROTOTYPE]
+    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+    , key, own, out;
+  if(IS_GLOBAL)source = name;
+  for(key in source){
+    // contains in native
+    own = !IS_FORCED && target && target[key] !== undefined;
+    if(own && key in exports)continue;
+    // export native or passed
+    out = own ? target[key] : source[key];
+    // prevent global pollution for namespaces
+    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+    // bind timers to global for call from export context
+    : IS_BIND && own ? ctx(out, global)
+    // wrap global constructors for prevent change them in library
+    : IS_WRAP && target[key] == out ? (function(C){
+      var F = function(a, b, c){
+        if(this instanceof C){
+          switch(arguments.length){
+            case 0: return new C;
+            case 1: return new C(a);
+            case 2: return new C(a, b);
+          } return new C(a, b, c);
+        } return C.apply(this, arguments);
+      };
+      F[PROTOTYPE] = C[PROTOTYPE];
+      return F;
+    // make static versions for prototype methods
+    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+    if(IS_PROTO){
+      (exports.virtual || (exports.virtual = {}))[key] = out;
+      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+    }
+  }
+};
+// type bitmap
+$export.F = 1;   // forced
+$export.G = 2;   // global
+$export.S = 4;   // static
+$export.P = 8;   // proto
+$export.B = 16;  // bind
+$export.W = 32;  // wrap
+$export.U = 64;  // safe
+$export.R = 128; // real proto method for `library` 
+module.exports = $export;
+},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){
+module.exports = function(exec){
+  try {
+    return !!exec();
+  } catch(e){
+    return true;
+  }
+};
+},{}],46:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],47:[function(require,module,exports){
+var dP         = require('./_object-dp')
+  , createDesc = require('./_property-desc');
+module.exports = require('./_descriptors') ? function(object, key, value){
+  return dP.f(object, key, createDesc(1, value));
+} : function(object, key, value){
+  object[key] = value;
+  return object;
+};
+},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){
+module.exports = require('./_global').document && document.documentElement;
+},{"./_global":46}],49:[function(require,module,exports){
+module.exports = !require('./_descriptors') && !require('./_fails')(function(){
+  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){
+// fast apply, http://jsperf.lnkit.com/fast-apply/5
+module.exports = function(fn, args, that){
+  var un = that === undefined;
+  switch(args.length){
+    case 0: return un ? fn()
+                      : fn.call(that);
+    case 1: return un ? fn(args[0])
+                      : fn.call(that, args[0]);
+    case 2: return un ? fn(args[0], args[1])
+                      : fn.call(that, args[0], args[1]);
+    case 3: return un ? fn(args[0], args[1], args[2])
+                      : fn.call(that, args[0], args[1], args[2]);
+    case 4: return un ? fn(args[0], args[1], args[2], args[3])
+                      : fn.call(that, args[0], args[1], args[2], args[3]);
+  } return              fn.apply(that, args);
+};
+},{}],51:[function(require,module,exports){
+module.exports = function(it){
+  return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+},{}],52:[function(require,module,exports){
+var anObject       = require('./_an-object')
+  , IE8_DOM_DEFINE = require('./_ie8-dom-define')
+  , toPrimitive    = require('./_to-primitive')
+  , dP             = Object.defineProperty;
+
+exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
+  anObject(O);
+  P = toPrimitive(P, true);
+  anObject(Attributes);
+  if(IE8_DOM_DEFINE)try {
+    return dP(O, P, Attributes);
+  } catch(e){ /* empty */ }
+  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+  if('value' in Attributes)O[P] = Attributes.value;
+  return O;
+};
+},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){
+module.exports = function(bitmap, value){
+  return {
+    enumerable  : !(bitmap & 1),
+    configurable: !(bitmap & 2),
+    writable    : !(bitmap & 4),
+    value       : value
+  };
+};
+},{}],54:[function(require,module,exports){
+var ctx                = require('./_ctx')
+  , invoke             = require('./_invoke')
+  , html               = require('./_html')
+  , cel                = require('./_dom-create')
+  , global             = require('./_global')
+  , process            = global.process
+  , setTask            = global.setImmediate
+  , clearTask          = global.clearImmediate
+  , MessageChannel     = global.MessageChannel
+  , counter            = 0
+  , queue              = {}
+  , ONREADYSTATECHANGE = 'onreadystatechange'
+  , defer, channel, port;
+var run = function(){
+  var id = +this;
+  if(queue.hasOwnProperty(id)){
+    var fn = queue[id];
+    delete queue[id];
+    fn();
+  }
+};
+var listener = function(event){
+  run.call(event.data);
+};
+// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
+if(!setTask || !clearTask){
+  setTask = function setImmediate(fn){
+    var args = [], i = 1;
+    while(arguments.length > i)args.push(arguments[i++]);
+    queue[++counter] = function(){
+      invoke(typeof fn == 'function' ? fn : Function(fn), args);
+    };
+    defer(counter);
+    return counter;
+  };
+  clearTask = function clearImmediate(id){
+    delete queue[id];
+  };
+  // Node.js 0.8-
+  if(require('./_cof')(process) == 'process'){
+    defer = function(id){
+      process.nextTick(ctx(run, id, 1));
+    };
+  // Browsers with MessageChannel, includes WebWorkers
+  } else if(MessageChannel){
+    channel = new MessageChannel;
+    port    = channel.port2;
+    channel.port1.onmessage = listener;
+    defer = ctx(port.postMessage, port, 1);
+  // Browsers with postMessage, skip WebWorkers
+  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
+  } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
+    defer = function(id){
+      global.postMessage(id + '', '*');
+    };
+    global.addEventListener('message', listener, false);
+  // IE8-
+  } else if(ONREADYSTATECHANGE in cel('script')){
+    defer = function(id){
+      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
+        html.removeChild(this);
+        run.call(id);
+      };
+    };
+  // Rest old browsers
+  } else {
+    defer = function(id){
+      setTimeout(ctx(run, id, 1), 0);
+    };
+  }
+}
+module.exports = {
+  set:   setTask,
+  clear: clearTask
+};
+},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){
+// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = require('./_is-object');
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function(it, S){
+  if(!isObject(it))return it;
+  var fn, val;
+  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  throw TypeError("Can't convert object to primitive value");
+};
+},{"./_is-object":51}],56:[function(require,module,exports){
+var $export = require('./_export')
+  , $task   = require('./_task');
+$export($export.G + $export.B, {
+  setImmediate:   $task.set,
+  clearImmediate: $task.clear
+});
+},{"./_export":44,"./_task":54}],57:[function(require,module,exports){
+(function (global){
+'use strict';
+var Mutation = global.MutationObserver || global.WebKitMutationObserver;
+
+var scheduleDrain;
+
+{
+  if (Mutation) {
+    var called = 0;
+    var observer = new Mutation(nextTick);
+    var element = global.document.createTextNode('');
+    observer.observe(element, {
+      characterData: true
+    });
+    scheduleDrain = function () {
+      element.data = (called = ++called % 2);
+    };
+  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
+    var channel = new global.MessageChannel();
+    channel.port1.onmessage = nextTick;
+    scheduleDrain = function () {
+      channel.port2.postMessage(0);
+    };
+  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
+    scheduleDrain = function () {
+
+      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
+      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
+      var scriptEl = global.document.createElement('script');
+      scriptEl.onreadystatechange = function () {
+        nextTick();
+
+        scriptEl.onreadystatechange = null;
+        scriptEl.parentNode.removeChild(scriptEl);
+        scriptEl = null;
+      };
+      global.document.documentElement.appendChild(scriptEl);
+    };
+  } else {
+    scheduleDrain = function () {
+      setTimeout(nextTick, 0);
+    };
+  }
+}
+
+var draining;
+var queue = [];
+//named nextTick for less confusing stack traces
+function nextTick() {
+  draining = true;
+  var i, oldQueue;
+  var len = queue.length;
+  while (len) {
+    oldQueue = queue;
+    queue = [];
+    i = -1;
+    while (++i < len) {
+      oldQueue[i]();
+    }
+    len = queue.length;
+  }
+  draining = false;
+}
+
+module.exports = immediate;
+function immediate(task) {
+  if (queue.push(task) === 1 && !draining) {
+    scheduleDrain();
+  }
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],58:[function(require,module,exports){
+'use strict';
+var immediate = require('immediate');
+
+/* istanbul ignore next */
+function INTERNAL() {}
+
+var handlers = {};
+
+var REJECTED = ['REJECTED'];
+var FULFILLED = ['FULFILLED'];
+var PENDING = ['PENDING'];
+
+module.exports = Promise;
+
+function Promise(resolver) {
+  if (typeof resolver !== 'function') {
+    throw new TypeError('resolver must be a function');
+  }
+  this.state = PENDING;
+  this.queue = [];
+  this.outcome = void 0;
+  if (resolver !== INTERNAL) {
+    safelyResolveThenable(this, resolver);
+  }
+}
+
+Promise.prototype["catch"] = function (onRejected) {
+  return this.then(null, onRejected);
+};
+Promise.prototype.then = function (onFulfilled, onRejected) {
+  if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||
+    typeof onRejected !== 'function' && this.state === REJECTED) {
+    return this;
+  }
+  var promise = new this.constructor(INTERNAL);
+  if (this.state !== PENDING) {
+    var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
+    unwrap(promise, resolver, this.outcome);
+  } else {
+    this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
+  }
+
+  return promise;
+};
+function QueueItem(promise, onFulfilled, onRejected) {
+  this.promise = promise;
+  if (typeof onFulfilled === 'function') {
+    this.onFulfilled = onFulfilled;
+    this.callFulfilled = this.otherCallFulfilled;
+  }
+  if (typeof onRejected === 'function') {
+    this.onRejected = onRejected;
+    this.callRejected = this.otherCallRejected;
+  }
+}
+QueueItem.prototype.callFulfilled = function (value) {
+  handlers.resolve(this.promise, value);
+};
+QueueItem.prototype.otherCallFulfilled = function (value) {
+  unwrap(this.promise, this.onFulfilled, value);
+};
+QueueItem.prototype.callRejected = function (value) {
+  handlers.reject(this.promise, value);
+};
+QueueItem.prototype.otherCallRejected = function (value) {
+  unwrap(this.promise, this.onRejected, value);
+};
+
+function unwrap(promise, func, value) {
+  immediate(function () {
+    var returnValue;
+    try {
+      returnValue = func(value);
+    } catch (e) {
+      return handlers.reject(promise, e);
+    }
+    if (returnValue === promise) {
+      handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));
+    } else {
+      handlers.resolve(promise, returnValue);
+    }
+  });
+}
+
+handlers.resolve = function (self, value) {
+  var result = tryCatch(getThen, value);
+  if (result.status === 'error') {
+    return handlers.reject(self, result.value);
+  }
+  var thenable = result.value;
+
+  if (thenable) {
+    safelyResolveThenable(self, thenable);
+  } else {
+    self.state = FULFILLED;
+    self.outcome = value;
+    var i = -1;
+    var len = self.queue.length;
+    while (++i < len) {
+      self.queue[i].callFulfilled(value);
+    }
+  }
+  return self;
+};
+handlers.reject = function (self, error) {
+  self.state = REJECTED;
+  self.outcome = error;
+  var i = -1;
+  var len = self.queue.length;
+  while (++i < len) {
+    self.queue[i].callRejected(error);
+  }
+  return self;
+};
+
+function getThen(obj) {
+  // Make sure we only access the accessor once as required by the spec
+  var then = obj && obj.then;
+  if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {
+    return function appyThen() {
+      then.apply(obj, arguments);
+    };
+  }
+}
+
+function safelyResolveThenable(self, thenable) {
+  // Either fulfill, reject or reject with error
+  var called = false;
+  function onError(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.reject(self, value);
+  }
+
+  function onSuccess(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.resolve(self, value);
+  }
+
+  function tryToUnwrap() {
+    thenable(onSuccess, onError);
+  }
+
+  var result = tryCatch(tryToUnwrap);
+  if (result.status === 'error') {
+    onError(result.value);
+  }
+}
+
+function tryCatch(func, value) {
+  var out = {};
+  try {
+    out.value = func(value);
+    out.status = 'success';
+  } catch (e) {
+    out.status = 'error';
+    out.value = e;
+  }
+  return out;
+}
+
+Promise.resolve = resolve;
+function resolve(value) {
+  if (value instanceof this) {
+    return value;
+  }
+  return handlers.resolve(new this(INTERNAL), value);
+}
+
+Promise.reject = reject;
+function reject(reason) {
+  var promise = new this(INTERNAL);
+  return handlers.reject(promise, reason);
+}
+
+Promise.all = all;
+function all(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var values = new Array(len);
+  var resolved = 0;
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    allResolver(iterable[i], i);
+  }
+  return promise;
+  function allResolver(value, i) {
+    self.resolve(value).then(resolveFromAll, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+    function resolveFromAll(outValue) {
+      values[i] = outValue;
+      if (++resolved === len && !called) {
+        called = true;
+        handlers.resolve(promise, values);
+      }
+    }
+  }
+}
+
+Promise.race = race;
+function race(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    resolver(iterable[i]);
+  }
+  return promise;
+  function resolver(value) {
+    self.resolve(value).then(function (response) {
+      if (!called) {
+        called = true;
+        handlers.resolve(promise, response);
+      }
+    }, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+  }
+}
+
+},{"immediate":57}],59:[function(require,module,exports){
+// Top level file is just a mixin of submodules & constants
+'use strict';
+
+var assign    = require('./lib/utils/common').assign;
+
+var deflate   = require('./lib/deflate');
+var inflate   = require('./lib/inflate');
+var constants = require('./lib/zlib/constants');
+
+var pako = {};
+
+assign(pako, deflate, inflate, constants);
+
+module.exports = pako;
+
+},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(require,module,exports){
+'use strict';
+
+
+var zlib_deflate = require('./zlib/deflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+
+var toString = Object.prototype.toString;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+var Z_NO_FLUSH      = 0;
+var Z_FINISH        = 4;
+
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_SYNC_FLUSH    = 2;
+
+var Z_DEFAULT_COMPRESSION = -1;
+
+var Z_DEFAULT_STRATEGY    = 0;
+
+var Z_DEFLATED  = 8;
+
+/* ===========================================================================*/
+
+
+/**
+ * class Deflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[deflate]],
+ * [[deflateRaw]] and [[gzip]].
+ **/
+
+/* internal
+ * Deflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Deflate#onData]] not overriden.
+ **/
+
+/**
+ * Deflate.result -> Uint8Array|Array
+ *
+ * Compressed result, generated by default [[Deflate#onData]]
+ * and [[Deflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Deflate#push]] with `Z_FINISH` / `true` param)  or if you
+ * push a chunk with explicit flush (call [[Deflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Deflate.err -> Number
+ *
+ * Error code after deflate finished. 0 (Z_OK) on success.
+ * You will not need it in real life, because deflate errors
+ * are possible only on wrong options or bad `onData` / `onEnd`
+ * custom handlers.
+ **/
+
+/**
+ * Deflate.msg -> String
+ *
+ * Error message, if [[Deflate.err]] != 0
+ **/
+
+
+/**
+ * new Deflate(options)
+ * - options (Object): zlib deflate options.
+ *
+ * Creates new deflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `level`
+ * - `windowBits`
+ * - `memLevel`
+ * - `strategy`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw deflate
+ * - `gzip` (Boolean) - create gzip wrapper
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ * - `header` (Object) - custom header for gzip
+ *   - `text` (Boolean) - true if compressed data believed to be text
+ *   - `time` (Number) - modification time, unix timestamp
+ *   - `os` (Number) - operation system code
+ *   - `extra` (Array) - array of bytes with extra data (max 65536)
+ *   - `name` (String) - file name (binary string)
+ *   - `comment` (String) - comment (binary string)
+ *   - `hcrc` (Boolean) - true if header crc should be added
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var deflate = new pako.Deflate({ level: 3});
+ *
+ * deflate.push(chunk1, false);
+ * deflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (deflate.err) { throw new Error(deflate.err); }
+ *
+ * console.log(deflate.result);
+ * ```
+ **/
+function Deflate(options) {
+  if (!(this instanceof Deflate)) return new Deflate(options);
+
+  this.options = utils.assign({
+    level: Z_DEFAULT_COMPRESSION,
+    method: Z_DEFLATED,
+    chunkSize: 16384,
+    windowBits: 15,
+    memLevel: 8,
+    strategy: Z_DEFAULT_STRATEGY,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  if (opt.raw && (opt.windowBits > 0)) {
+    opt.windowBits = -opt.windowBits;
+  }
+
+  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {
+    opt.windowBits += 16;
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status = zlib_deflate.deflateInit2(
+    this.strm,
+    opt.level,
+    opt.method,
+    opt.windowBits,
+    opt.memLevel,
+    opt.strategy
+  );
+
+  if (status !== Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  if (opt.header) {
+    zlib_deflate.deflateSetHeader(this.strm, opt.header);
+  }
+
+  if (opt.dictionary) {
+    var dict;
+    // Convert data if needed
+    if (typeof opt.dictionary === 'string') {
+      // If we need to compress text, change encoding to utf8.
+      dict = strings.string2buf(opt.dictionary);
+    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
+      dict = new Uint8Array(opt.dictionary);
+    } else {
+      dict = opt.dictionary;
+    }
+
+    status = zlib_deflate.deflateSetDictionary(this.strm, dict);
+
+    if (status !== Z_OK) {
+      throw new Error(msg[status]);
+    }
+
+    this._dict_set = true;
+  }
+}
+
+/**
+ * Deflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
+ *   converted to utf8 byte sequence.
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
+ * new compressed chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the compression context.
+ *
+ * On fail call [[Deflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * array format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Deflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var status, _mode;
+
+  if (this.ended) { return false; }
+
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // If we need to compress text, change encoding to utf8.
+    strm.input = strings.string2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */
+
+    if (status !== Z_STREAM_END && status !== Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+    if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {
+      if (this.options.to === 'string') {
+        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
+      } else {
+        this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+      }
+    }
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
+
+  // Finalize on the last chunk.
+  if (_mode === Z_FINISH) {
+    status = zlib_deflate.deflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === Z_SYNC_FLUSH) {
+    this.onEnd(Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Deflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Deflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Deflate#onEnd(status) -> Void
+ * - status (Number): deflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called once after you tell deflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Deflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === Z_OK) {
+    if (this.options.to === 'string') {
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * deflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * Compress `data` with deflate algorithm and `options`.
+ *
+ * Supported options are:
+ *
+ * - level
+ * - windowBits
+ * - memLevel
+ * - strategy
+ * - dictionary
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
+ *
+ * console.log(pako.deflate(data));
+ * ```
+ **/
+function deflate(input, options) {
+  var deflator = new Deflate(options);
+
+  deflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }
+
+  return deflator.result;
+}
+
+
+/**
+ * deflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function deflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return deflate(input, options);
+}
+
+
+/**
+ * gzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but create gzip wrapper instead of
+ * deflate one.
+ **/
+function gzip(input, options) {
+  options = options || {};
+  options.gzip = true;
+  return deflate(input, options);
+}
+
+
+exports.Deflate = Deflate;
+exports.deflate = deflate;
+exports.deflateRaw = deflateRaw;
+exports.gzip = gzip;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(require,module,exports){
+'use strict';
+
+
+var zlib_inflate = require('./zlib/inflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var c            = require('./zlib/constants');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+var GZheader     = require('./zlib/gzheader');
+
+var toString = Object.prototype.toString;
+
+/**
+ * class Inflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[inflate]]
+ * and [[inflateRaw]].
+ **/
+
+/* internal
+ * inflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Inflate#onData]] not overriden.
+ **/
+
+/**
+ * Inflate.result -> Uint8Array|Array|String
+ *
+ * Uncompressed result, generated by default [[Inflate#onData]]
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
+ * push a chunk with explicit flush (call [[Inflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Inflate.err -> Number
+ *
+ * Error code after inflate finished. 0 (Z_OK) on success.
+ * Should be checked if broken data possible.
+ **/
+
+/**
+ * Inflate.msg -> String
+ *
+ * Error message, if [[Inflate.err]] != 0
+ **/
+
+
+/**
+ * new Inflate(options)
+ * - options (Object): zlib inflate options.
+ *
+ * Creates new inflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `windowBits`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw inflate
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ * By default, when no options set, autodetect deflate/gzip data format via
+ * wrapper header.
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var inflate = new pako.Inflate({ level: 3});
+ *
+ * inflate.push(chunk1, false);
+ * inflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (inflate.err) { throw new Error(inflate.err); }
+ *
+ * console.log(inflate.result);
+ * ```
+ **/
+function Inflate(options) {
+  if (!(this instanceof Inflate)) return new Inflate(options);
+
+  this.options = utils.assign({
+    chunkSize: 16384,
+    windowBits: 0,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  // Force window size for `raw` data, if not set directly,
+  // because we have no header for autodetect.
+  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
+    opt.windowBits = -opt.windowBits;
+    if (opt.windowBits === 0) { opt.windowBits = -15; }
+  }
+
+  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
+  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
+      !(options && options.windowBits)) {
+    opt.windowBits += 32;
+  }
+
+  // Gzip header has no info about windows size, we can do autodetect only
+  // for deflate. So, if window size not set, force it to max when gzip possible
+  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
+    // bit 3 (16) -> gzipped data
+    // bit 4 (32) -> autodetect gzip/deflate
+    if ((opt.windowBits & 15) === 0) {
+      opt.windowBits |= 15;
+    }
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm   = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status  = zlib_inflate.inflateInit2(
+    this.strm,
+    opt.windowBits
+  );
+
+  if (status !== c.Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  this.header = new GZheader();
+
+  zlib_inflate.inflateGetHeader(this.strm, this.header);
+}
+
+/**
+ * Inflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
+ * new output chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
+ *
+ * On fail call [[Inflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Inflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var dictionary = this.options.dictionary;
+  var status, _mode;
+  var next_out_utf8, tail, utf8str;
+  var dict;
+
+  // Flag to properly process Z_BUF_ERROR on testing inflate call
+  // when we check that all output data was flushed.
+  var allowBufError = false;
+
+  if (this.ended) { return false; }
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // Only binary strings can be decompressed on practice
+    strm.input = strings.binstring2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+
+    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */
+
+    if (status === c.Z_NEED_DICT && dictionary) {
+      // Convert data if needed
+      if (typeof dictionary === 'string') {
+        dict = strings.string2buf(dictionary);
+      } else if (toString.call(dictionary) === '[object ArrayBuffer]') {
+        dict = new Uint8Array(dictionary);
+      } else {
+        dict = dictionary;
+      }
+
+      status = zlib_inflate.inflateSetDictionary(this.strm, dict);
+
+    }
+
+    if (status === c.Z_BUF_ERROR && allowBufError === true) {
+      status = c.Z_OK;
+      allowBufError = false;
+    }
+
+    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+
+    if (strm.next_out) {
+      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
+
+        if (this.options.to === 'string') {
+
+          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
+
+          tail = strm.next_out - next_out_utf8;
+          utf8str = strings.buf2string(strm.output, next_out_utf8);
+
+          // move tail
+          strm.next_out = tail;
+          strm.avail_out = chunkSize - tail;
+          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
+
+          this.onData(utf8str);
+
+        } else {
+          this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+        }
+      }
+    }
+
+    // When no more input data, we should check that internal inflate buffers
+    // are flushed. The only way to do it when avail_out = 0 - run one more
+    // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
+    // Here we set flag to process this error properly.
+    //
+    // NOTE. Deflate does not return error in this case and does not needs such
+    // logic.
+    if (strm.avail_in === 0 && strm.avail_out === 0) {
+      allowBufError = true;
+    }
+
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
+
+  if (status === c.Z_STREAM_END) {
+    _mode = c.Z_FINISH;
+  }
+
+  // Finalize on the last chunk.
+  if (_mode === c.Z_FINISH) {
+    status = zlib_inflate.inflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === c.Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === c.Z_SYNC_FLUSH) {
+    this.onEnd(c.Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Inflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Inflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Inflate#onEnd(status) -> Void
+ * - status (Number): inflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called either after you tell inflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Inflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === c.Z_OK) {
+    if (this.options.to === 'string') {
+      // Glue & convert here, until we teach pako to send
+      // utf8 alligned strings to onData
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * inflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
+ * format via wrapper header by default. That's why we don't provide
+ * separate `ungzip` method.
+ *
+ * Supported options are:
+ *
+ * - windowBits
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])
+ *   , output;
+ *
+ * try {
+ *   output = pako.inflate(input);
+ * } catch (err)
+ *   console.log(err);
+ * }
+ * ```
+ **/
+function inflate(input, options) {
+  var inflator = new Inflate(options);
+
+  inflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
+
+  return inflator.result;
+}
+
+
+/**
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * The same as [[inflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function inflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return inflate(input, options);
+}
+
+
+/**
+ * ungzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Just shortcut to [[inflate]], because it autodetects format
+ * by header.content. Done for convenience.
+ **/
+
+
+exports.Inflate = Inflate;
+exports.inflate = inflate;
+exports.inflateRaw = inflateRaw;
+exports.ungzip  = inflate;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(require,module,exports){
+'use strict';
+
+
+var TYPED_OK =  (typeof Uint8Array !== 'undefined') &&
+                (typeof Uint16Array !== 'undefined') &&
+                (typeof Int32Array !== 'undefined');
+
+
+exports.assign = function (obj /*from1, from2, from3, ...*/) {
+  var sources = Array.prototype.slice.call(arguments, 1);
+  while (sources.length) {
+    var source = sources.shift();
+    if (!source) { continue; }
+
+    if (typeof source !== 'object') {
+      throw new TypeError(source + 'must be non-object');
+    }
+
+    for (var p in source) {
+      if (source.hasOwnProperty(p)) {
+        obj[p] = source[p];
+      }
+    }
+  }
+
+  return obj;
+};
+
+
+// reduce buffer size, avoiding mem copy
+exports.shrinkBuf = function (buf, size) {
+  if (buf.length === size) { return buf; }
+  if (buf.subarray) { return buf.subarray(0, size); }
+  buf.length = size;
+  return buf;
+};
+
+
+var fnTyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    if (src.subarray && dest.subarray) {
+      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
+      return;
+    }
+    // Fallback to ordinary array
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    var i, l, len, pos, chunk, result;
+
+    // calculate data length
+    len = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      len += chunks[i].length;
+    }
+
+    // join chunks
+    result = new Uint8Array(len);
+    pos = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      chunk = chunks[i];
+      result.set(chunk, pos);
+      pos += chunk.length;
+    }
+
+    return result;
+  }
+};
+
+var fnUntyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    return [].concat.apply([], chunks);
+  }
+};
+
+
+// Enable/Disable typed arrays use, for testing
+//
+exports.setTyped = function (on) {
+  if (on) {
+    exports.Buf8  = Uint8Array;
+    exports.Buf16 = Uint16Array;
+    exports.Buf32 = Int32Array;
+    exports.assign(exports, fnTyped);
+  } else {
+    exports.Buf8  = Array;
+    exports.Buf16 = Array;
+    exports.Buf32 = Array;
+    exports.assign(exports, fnUntyped);
+  }
+};
+
+exports.setTyped(TYPED_OK);
+
+},{}],63:[function(require,module,exports){
+// String encode/decode helpers
+'use strict';
+
+
+var utils = require('./common');
+
+
+// Quick check if we can use fast array to bin string conversion
+//
+// - apply(Array) can fail on Android 2.2
+// - apply(Uint8Array) can fail on iOS 5.1 Safary
+//
+var STR_APPLY_OK = true;
+var STR_APPLY_UIA_OK = true;
+
+try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
+try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
+
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new utils.Buf8(256);
+for (var q = 0; q < 256; q++) {
+  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
+}
+_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
+
+
+// convert string to array (typed, when possible)
+exports.string2buf = function (str) {
+  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+  // count binary size
+  for (m_pos = 0; m_pos < str_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+  }
+
+  // allocate buffer
+  buf = new utils.Buf8(buf_len);
+
+  // convert
+  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    if (c < 0x80) {
+      /* one byte */
+      buf[i++] = c;
+    } else if (c < 0x800) {
+      /* two bytes */
+      buf[i++] = 0xC0 | (c >>> 6);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else if (c < 0x10000) {
+      /* three bytes */
+      buf[i++] = 0xE0 | (c >>> 12);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else {
+      /* four bytes */
+      buf[i++] = 0xf0 | (c >>> 18);
+      buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    }
+  }
+
+  return buf;
+};
+
+// Helper (used in 2 places)
+function buf2binstring(buf, len) {
+  // use fallback for big arrays to avoid stack overflow
+  if (len < 65537) {
+    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
+      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
+    }
+  }
+
+  var result = '';
+  for (var i = 0; i < len; i++) {
+    result += String.fromCharCode(buf[i]);
+  }
+  return result;
+}
+
+
+// Convert byte array to binary string
+exports.buf2binstring = function (buf) {
+  return buf2binstring(buf, buf.length);
+};
+
+
+// Convert binary string (typed, when possible)
+exports.binstring2buf = function (str) {
+  var buf = new utils.Buf8(str.length);
+  for (var i = 0, len = buf.length; i < len; i++) {
+    buf[i] = str.charCodeAt(i);
+  }
+  return buf;
+};
+
+
+// convert array to string
+exports.buf2string = function (buf, max) {
+  var i, out, c, c_len;
+  var len = max || buf.length;
+
+  // Reserve max possible length (2 words per char)
+  // NB: by unknown reasons, Array is significantly faster for
+  //     String.fromCharCode.apply than Uint16Array.
+  var utf16buf = new Array(len * 2);
+
+  for (out = 0, i = 0; i < len;) {
+    c = buf[i++];
+    // quick process ascii
+    if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+    c_len = _utf8len[c];
+    // skip 5 & 6 byte codes
+    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
+
+    // apply mask on first byte
+    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+    // join the rest
+    while (c_len > 1 && i < len) {
+      c = (c << 6) | (buf[i++] & 0x3f);
+      c_len--;
+    }
+
+    // terminated by end of string?
+    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+    if (c < 0x10000) {
+      utf16buf[out++] = c;
+    } else {
+      c -= 0x10000;
+      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+      utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+    }
+  }
+
+  return buf2binstring(utf16buf, out);
+};
+
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+exports.utf8border = function (buf, max) {
+  var pos;
+
+  max = max || buf.length;
+  if (max > buf.length) { max = buf.length; }
+
+  // go back from last position, until start of sequence found
+  pos = max - 1;
+  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+  // Fuckup - very small and broken sequence,
+  // return max, because we should return something anyway.
+  if (pos < 0) { return max; }
+
+  // If we came to start of buffer - that means vuffer is too small,
+  // return max too.
+  if (pos === 0) { return max; }
+
+  return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+},{"./common":62}],64:[function(require,module,exports){
+'use strict';
+
+// Note: adler32 takes 12% for level 0 and 2% for level 6.
+// It doesn't worth to make additional optimizationa as in original.
+// Small size is preferable.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function adler32(adler, buf, len, pos) {
+  var s1 = (adler & 0xffff) |0,
+      s2 = ((adler >>> 16) & 0xffff) |0,
+      n = 0;
+
+  while (len !== 0) {
+    // Set limit ~ twice less than 5552, to keep
+    // s2 in 31-bits, because we force signed ints.
+    // in other case %= will fail.
+    n = len > 2000 ? 2000 : len;
+    len -= n;
+
+    do {
+      s1 = (s1 + buf[pos++]) |0;
+      s2 = (s2 + s1) |0;
+    } while (--n);
+
+    s1 %= 65521;
+    s2 %= 65521;
+  }
+
+  return (s1 | (s2 << 16)) |0;
+}
+
+
+module.exports = adler32;
+
+},{}],65:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+
+  /* Allowed flush values; see deflate() and inflate() below for details */
+  Z_NO_FLUSH:         0,
+  Z_PARTIAL_FLUSH:    1,
+  Z_SYNC_FLUSH:       2,
+  Z_FULL_FLUSH:       3,
+  Z_FINISH:           4,
+  Z_BLOCK:            5,
+  Z_TREES:            6,
+
+  /* Return codes for the compression/decompression functions. Negative values
+  * are errors, positive values are used for special but normal events.
+  */
+  Z_OK:               0,
+  Z_STREAM_END:       1,
+  Z_NEED_DICT:        2,
+  Z_ERRNO:           -1,
+  Z_STREAM_ERROR:    -2,
+  Z_DATA_ERROR:      -3,
+  //Z_MEM_ERROR:     -4,
+  Z_BUF_ERROR:       -5,
+  //Z_VERSION_ERROR: -6,
+
+  /* compression levels */
+  Z_NO_COMPRESSION:         0,
+  Z_BEST_SPEED:             1,
+  Z_BEST_COMPRESSION:       9,
+  Z_DEFAULT_COMPRESSION:   -1,
+
+
+  Z_FILTERED:               1,
+  Z_HUFFMAN_ONLY:           2,
+  Z_RLE:                    3,
+  Z_FIXED:                  4,
+  Z_DEFAULT_STRATEGY:       0,
+
+  /* Possible values of the data_type field (though see inflate()) */
+  Z_BINARY:                 0,
+  Z_TEXT:                   1,
+  //Z_ASCII:                1, // = Z_TEXT (deprecated)
+  Z_UNKNOWN:                2,
+
+  /* The deflate compression method */
+  Z_DEFLATED:               8
+  //Z_NULL:                 null // Use -1 or null inline, depending on var type
+};
+
+},{}],66:[function(require,module,exports){
+'use strict';
+
+// Note: we can't get significant speed boost here.
+// So write code to minimize size - no pregenerated tables
+// and array tools dependencies.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+  var c, table = [];
+
+  for (var n = 0; n < 256; n++) {
+    c = n;
+    for (var k = 0; k < 8; k++) {
+      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+    }
+    table[n] = c;
+  }
+
+  return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+  var t = crcTable,
+      end = pos + len;
+
+  crc ^= -1;
+
+  for (var i = pos; i < end; i++) {
+    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+  }
+
+  return (crc ^ (-1)); // >>> 0;
+}
+
+
+module.exports = crc32;
+
+},{}],67:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils   = require('../utils/common');
+var trees   = require('./trees');
+var adler32 = require('./adler32');
+var crc32   = require('./crc32');
+var msg     = require('./messages');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+var Z_NO_FLUSH      = 0;
+var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+//var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+//var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+//var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+
+/* compression levels */
+//var Z_NO_COMPRESSION      = 0;
+//var Z_BEST_SPEED          = 1;
+//var Z_BEST_COMPRESSION    = 9;
+var Z_DEFAULT_COMPRESSION = -1;
+
+
+var Z_FILTERED            = 1;
+var Z_HUFFMAN_ONLY        = 2;
+var Z_RLE                 = 3;
+var Z_FIXED               = 4;
+var Z_DEFAULT_STRATEGY    = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+//var Z_BINARY              = 0;
+//var Z_TEXT                = 1;
+//var Z_ASCII               = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+/*============================================================================*/
+
+
+var MAX_MEM_LEVEL = 9;
+/* Maximum value for memLevel in deflateInit2 */
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_MEM_LEVEL = 8;
+
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+var D_CODES       = 30;
+/* number of distance codes */
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+var MAX_BITS  = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var MIN_MATCH = 3;
+var MAX_MATCH = 258;
+var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
+
+var PRESET_DICT = 0x20;
+
+var INIT_STATE = 42;
+var EXTRA_STATE = 69;
+var NAME_STATE = 73;
+var COMMENT_STATE = 91;
+var HCRC_STATE = 103;
+var BUSY_STATE = 113;
+var FINISH_STATE = 666;
+
+var BS_NEED_MORE      = 1; /* block not completed, need more input or more output */
+var BS_BLOCK_DONE     = 2; /* block flush performed */
+var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
+var BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */
+
+var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
+
+function err(strm, errorCode) {
+  strm.msg = msg[errorCode];
+  return errorCode;
+}
+
+function rank(f) {
+  return ((f) << 1) - ((f) > 4 ? 9 : 0);
+}
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+
+/* =========================================================================
+ * Flush as much pending output as possible. All deflate() output goes
+ * through this function so some applications may wish to modify it
+ * to avoid allocating a large strm->output buffer and copying into it.
+ * (See also read_buf()).
+ */
+function flush_pending(strm) {
+  var s = strm.state;
+
+  //_tr_flush_bits(s);
+  var len = s.pending;
+  if (len > strm.avail_out) {
+    len = strm.avail_out;
+  }
+  if (len === 0) { return; }
+
+  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
+  strm.next_out += len;
+  s.pending_out += len;
+  strm.total_out += len;
+  strm.avail_out -= len;
+  s.pending -= len;
+  if (s.pending === 0) {
+    s.pending_out = 0;
+  }
+}
+
+
+function flush_block_only(s, last) {
+  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
+  s.block_start = s.strstart;
+  flush_pending(s.strm);
+}
+
+
+function put_byte(s, b) {
+  s.pending_buf[s.pending++] = b;
+}
+
+
+/* =========================================================================
+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
+ * IN assertion: the stream state is correct and there is enough room in
+ * pending_buf.
+ */
+function putShortMSB(s, b) {
+//  put_byte(s, (Byte)(b >> 8));
+//  put_byte(s, (Byte)(b & 0xff));
+  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
+  s.pending_buf[s.pending++] = b & 0xff;
+}
+
+
+/* ===========================================================================
+ * Read a new buffer from the current input stream, update the adler32
+ * and total number of bytes read.  All deflate() input goes through
+ * this function so some applications may wish to modify it to avoid
+ * allocating a large strm->input buffer and copying from it.
+ * (See also flush_pending()).
+ */
+function read_buf(strm, buf, start, size) {
+  var len = strm.avail_in;
+
+  if (len > size) { len = size; }
+  if (len === 0) { return 0; }
+
+  strm.avail_in -= len;
+
+  // zmemcpy(buf, strm->next_in, len);
+  utils.arraySet(buf, strm.input, strm.next_in, len, start);
+  if (strm.state.wrap === 1) {
+    strm.adler = adler32(strm.adler, buf, len, start);
+  }
+
+  else if (strm.state.wrap === 2) {
+    strm.adler = crc32(strm.adler, buf, len, start);
+  }
+
+  strm.next_in += len;
+  strm.total_in += len;
+
+  return len;
+}
+
+
+/* ===========================================================================
+ * Set match_start to the longest match starting at the given string and
+ * return its length. Matches shorter or equal to prev_length are discarded,
+ * in which case the result is equal to prev_length and match_start is
+ * garbage.
+ * IN assertions: cur_match is the head of the hash chain for the current
+ *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
+ * OUT assertion: the match length is not greater than s->lookahead.
+ */
+function longest_match(s, cur_match) {
+  var chain_length = s.max_chain_length;      /* max hash chain length */
+  var scan = s.strstart; /* current string */
+  var match;                       /* matched string */
+  var len;                           /* length of current match */
+  var best_len = s.prev_length;              /* best match length so far */
+  var nice_match = s.nice_match;             /* stop if match long enough */
+  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
+      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
+
+  var _win = s.window; // shortcut
+
+  var wmask = s.w_mask;
+  var prev  = s.prev;
+
+  /* Stop when cur_match becomes <= limit. To simplify the code,
+   * we prevent matches with the string of window index 0.
+   */
+
+  var strend = s.strstart + MAX_MATCH;
+  var scan_end1  = _win[scan + best_len - 1];
+  var scan_end   = _win[scan + best_len];
+
+  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+   * It is easy to get rid of this optimization if necessary.
+   */
+  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+  /* Do not waste too much time if we already have a good match: */
+  if (s.prev_length >= s.good_match) {
+    chain_length >>= 2;
+  }
+  /* Do not look for matches beyond the end of the input. This is necessary
+   * to make deflate deterministic.
+   */
+  if (nice_match > s.lookahead) { nice_match = s.lookahead; }
+
+  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+  do {
+    // Assert(cur_match < s->strstart, "no future");
+    match = cur_match;
+
+    /* Skip to next match if the match length cannot increase
+     * or if the match length is less than 2.  Note that the checks below
+     * for insufficient lookahead only occur occasionally for performance
+     * reasons.  Therefore uninitialized memory will be accessed, and
+     * conditional jumps will be made that depend on those values.
+     * However the length of the match is limited to the lookahead, so
+     * the output of deflate is not affected by the uninitialized values.
+     */
+
+    if (_win[match + best_len]     !== scan_end  ||
+        _win[match + best_len - 1] !== scan_end1 ||
+        _win[match]                !== _win[scan] ||
+        _win[++match]              !== _win[scan + 1]) {
+      continue;
+    }
+
+    /* The check at best_len-1 can be removed because it will be made
+     * again later. (This heuristic is not always a win.)
+     * It is not necessary to compare scan[2] and match[2] since they
+     * are always equal when the other bytes match, given that
+     * the hash keys are equal and that HASH_BITS >= 8.
+     */
+    scan += 2;
+    match++;
+    // Assert(*scan == *match, "match[2]?");
+
+    /* We check for insufficient lookahead only every 8th comparison;
+     * the 256th check will be made at strstart+258.
+     */
+    do {
+      /*jshint noempty:false*/
+    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             scan < strend);
+
+    // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+    len = MAX_MATCH - (strend - scan);
+    scan = strend - MAX_MATCH;
+
+    if (len > best_len) {
+      s.match_start = cur_match;
+      best_len = len;
+      if (len >= nice_match) {
+        break;
+      }
+      scan_end1  = _win[scan + best_len - 1];
+      scan_end   = _win[scan + best_len];
+    }
+  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
+
+  if (best_len <= s.lookahead) {
+    return best_len;
+  }
+  return s.lookahead;
+}
+
+
+/* ===========================================================================
+ * Fill the window when the lookahead becomes insufficient.
+ * Updates strstart and lookahead.
+ *
+ * IN assertion: lookahead < MIN_LOOKAHEAD
+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
+ *    At least one byte has been read, or avail_in == 0; reads are
+ *    performed for at least two bytes (required for the zip translate_eol
+ *    option -- not supported here).
+ */
+function fill_window(s) {
+  var _w_size = s.w_size;
+  var p, n, m, more, str;
+
+  //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+  do {
+    more = s.window_size - s.lookahead - s.strstart;
+
+    // JS ints have 32 bit, block below not needed
+    /* Deal with !@#$% 64K limit: */
+    //if (sizeof(int) <= 2) {
+    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+    //        more = wsize;
+    //
+    //  } else if (more == (unsigned)(-1)) {
+    //        /* Very unlikely, but possible on 16 bit machine if
+    //         * strstart == 0 && lookahead == 1 (input done a byte at time)
+    //         */
+    //        more--;
+    //    }
+    //}
+
+
+    /* If the window is almost full and there is insufficient lookahead,
+     * move the upper half to the lower one to make room in the upper half.
+     */
+    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
+
+      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
+      s.match_start -= _w_size;
+      s.strstart -= _w_size;
+      /* we now have strstart >= MAX_DIST */
+      s.block_start -= _w_size;
+
+      /* Slide the hash table (could be avoided with 32 bit values
+       at the expense of memory usage). We slide even when level == 0
+       to keep the hash table consistent if we switch back to level > 0
+       later. (Using level 0 permanently is not an optimal usage of
+       zlib, so we don't care about this pathological case.)
+       */
+
+      n = s.hash_size;
+      p = n;
+      do {
+        m = s.head[--p];
+        s.head[p] = (m >= _w_size ? m - _w_size : 0);
+      } while (--n);
+
+      n = _w_size;
+      p = n;
+      do {
+        m = s.prev[--p];
+        s.prev[p] = (m >= _w_size ? m - _w_size : 0);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+      } while (--n);
+
+      more += _w_size;
+    }
+    if (s.strm.avail_in === 0) {
+      break;
+    }
+
+    /* If there was no sliding:
+     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+     *    more == window_size - lookahead - strstart
+     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+     * => more >= window_size - 2*WSIZE + 2
+     * In the BIG_MEM or MMAP case (not yet supported),
+     *   window_size == input_size + MIN_LOOKAHEAD  &&
+     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+     * Otherwise, window_size == 2*WSIZE so more >= 2.
+     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+     */
+    //Assert(more >= 2, "more < 2");
+    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
+    s.lookahead += n;
+
+    /* Initialize the hash value now that we have some input: */
+    if (s.lookahead + s.insert >= MIN_MATCH) {
+      str = s.strstart - s.insert;
+      s.ins_h = s.window[str];
+
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
+//#if MIN_MATCH != 3
+//        Call update_hash() MIN_MATCH-3 more times
+//#endif
+      while (s.insert) {
+        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+        s.prev[str & s.w_mask] = s.head[s.ins_h];
+        s.head[s.ins_h] = str;
+        str++;
+        s.insert--;
+        if (s.lookahead + s.insert < MIN_MATCH) {
+          break;
+        }
+      }
+    }
+    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+     * but this is not important since only literal bytes will be emitted.
+     */
+
+  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
+
+  /* If the WIN_INIT bytes after the end of the current data have never been
+   * written, then zero those bytes in order to avoid memory check reports of
+   * the use of uninitialized (or uninitialised as Julian writes) bytes by
+   * the longest match routines.  Update the high water mark for the next
+   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
+   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+   */
+//  if (s.high_water < s.window_size) {
+//    var curr = s.strstart + s.lookahead;
+//    var init = 0;
+//
+//    if (s.high_water < curr) {
+//      /* Previous high water mark below current data -- zero WIN_INIT
+//       * bytes or up to end of window, whichever is less.
+//       */
+//      init = s.window_size - curr;
+//      if (init > WIN_INIT)
+//        init = WIN_INIT;
+//      zmemzero(s->window + curr, (unsigned)init);
+//      s->high_water = curr + init;
+//    }
+//    else if (s->high_water < (ulg)curr + WIN_INIT) {
+//      /* High water mark at or above current data, but below current data
+//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+//       * to end of window, whichever is less.
+//       */
+//      init = (ulg)curr + WIN_INIT - s->high_water;
+//      if (init > s->window_size - s->high_water)
+//        init = s->window_size - s->high_water;
+//      zmemzero(s->window + s->high_water, (unsigned)init);
+//      s->high_water += init;
+//    }
+//  }
+//
+//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+//    "not enough room for search");
+}
+
+/* ===========================================================================
+ * Copy without compression as much as possible from the input stream, return
+ * the current block state.
+ * This function does not insert new strings in the dictionary since
+ * uncompressible data is probably not useful. This function is used
+ * only for the level=0 compression option.
+ * NOTE: this function should be optimized to avoid extra copying from
+ * window to pending_buf.
+ */
+function deflate_stored(s, flush) {
+  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
+   * to pending_buf_size, and each stored block has a 5 byte header:
+   */
+  var max_block_size = 0xffff;
+
+  if (max_block_size > s.pending_buf_size - 5) {
+    max_block_size = s.pending_buf_size - 5;
+  }
+
+  /* Copy as much as possible from input to output: */
+  for (;;) {
+    /* Fill the window as much as possible: */
+    if (s.lookahead <= 1) {
+
+      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||
+      //  s->block_start >= (long)s->w_size, "slide too late");
+//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
+//        s.block_start >= s.w_size)) {
+//        throw  new Error("slide too late");
+//      }
+
+      fill_window(s);
+      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+
+      if (s.lookahead === 0) {
+        break;
+      }
+      /* flush the current block */
+    }
+    //Assert(s->block_start >= 0L, "block gone");
+//    if (s.block_start < 0) throw new Error("block gone");
+
+    s.strstart += s.lookahead;
+    s.lookahead = 0;
+
+    /* Emit a stored block if pending_buf will be full: */
+    var max_start = s.block_start + max_block_size;
+
+    if (s.strstart === 0 || s.strstart >= max_start) {
+      /* strstart == 0 is possible when wraparound on 16-bit machine */
+      s.lookahead = s.strstart - max_start;
+      s.strstart = max_start;
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+
+
+    }
+    /* Flush if we may have to slide, otherwise block_start may become
+     * negative and the data will be gone:
+     */
+    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+
+  s.insert = 0;
+
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+
+  if (s.strstart > s.block_start) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_NEED_MORE;
+}
+
+/* ===========================================================================
+ * Compress as much as possible from the input stream, return the current
+ * block state.
+ * This function does not perform lazy evaluation of matches and inserts
+ * new strings in the dictionary only for unmatched strings or for short
+ * matches. It is used only for the fast compression options.
+ */
+function deflate_fast(s, flush) {
+  var hash_head;        /* head of the hash chain */
+  var bflush;           /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) {
+        break; /* flush the current block */
+      }
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     * At this point we have always match_length < MIN_MATCH
+     */
+    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+    }
+    if (s.match_length >= MIN_MATCH) {
+      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
+
+      /*** _tr_tally_dist(s, s.strstart - s.match_start,
+                     s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+
+      /* Insert new strings in the hash table only if the match length
+       * is not too large. This saves time but degrades compression.
+       */
+      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
+        s.match_length--; /* string at strstart already in table */
+        do {
+          s.strstart++;
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+          /* strstart never exceeds WSIZE-MAX_MATCH, so there are
+           * always MIN_MATCH bytes ahead.
+           */
+        } while (--s.match_length !== 0);
+        s.strstart++;
+      } else
+      {
+        s.strstart += s.match_length;
+        s.match_length = 0;
+        s.ins_h = s.window[s.strstart];
+        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
+
+//#if MIN_MATCH != 3
+//                Call UPDATE_HASH() MIN_MATCH-3 more times
+//#endif
+        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
+         * matter since it will be recomputed at next deflate call.
+         */
+      }
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s.window[s.strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * Same as above, but achieves better compression. We use a lazy
+ * evaluation for matches: a match is finally adopted only if there is
+ * no better match at the next window position.
+ */
+function deflate_slow(s, flush) {
+  var hash_head;          /* head of hash chain */
+  var bflush;              /* set if current block must be flushed */
+
+  var max_insert;
+
+  /* Process the input block. */
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     */
+    s.prev_length = s.match_length;
+    s.prev_match = s.match_start;
+    s.match_length = MIN_MATCH - 1;
+
+    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
+        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+
+      if (s.match_length <= 5 &&
+         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
+
+        /* If prev_match is also MIN_MATCH, match_start is garbage
+         * but we will ignore the current match anyway.
+         */
+        s.match_length = MIN_MATCH - 1;
+      }
+    }
+    /* If there was a match at the previous step and the current
+     * match is not better, output the previous match:
+     */
+    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
+      max_insert = s.strstart + s.lookahead - MIN_MATCH;
+      /* Do not insert strings in hash table beyond this. */
+
+      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);
+
+      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
+                     s.prev_length - MIN_MATCH, bflush);***/
+      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
+      /* Insert in hash table all strings up to the end of the match.
+       * strstart-1 and strstart are already inserted. If there is not
+       * enough lookahead, the last two strings are not inserted in
+       * the hash table.
+       */
+      s.lookahead -= s.prev_length - 1;
+      s.prev_length -= 2;
+      do {
+        if (++s.strstart <= max_insert) {
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+        }
+      } while (--s.prev_length !== 0);
+      s.match_available = 0;
+      s.match_length = MIN_MATCH - 1;
+      s.strstart++;
+
+      if (bflush) {
+        /*** FLUSH_BLOCK(s, 0); ***/
+        flush_block_only(s, false);
+        if (s.strm.avail_out === 0) {
+          return BS_NEED_MORE;
+        }
+        /***/
+      }
+
+    } else if (s.match_available) {
+      /* If there was no match at the previous position, output a
+       * single literal. If there was a match but the current match
+       * is longer, truncate the previous match to a single literal.
+       */
+      //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+      if (bflush) {
+        /*** FLUSH_BLOCK_ONLY(s, 0) ***/
+        flush_block_only(s, false);
+        /***/
+      }
+      s.strstart++;
+      s.lookahead--;
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+    } else {
+      /* There is no previous match to compare with, wait for
+       * the next step to decide.
+       */
+      s.match_available = 1;
+      s.strstart++;
+      s.lookahead--;
+    }
+  }
+  //Assert (flush != Z_NO_FLUSH, "no flush?");
+  if (s.match_available) {
+    //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+    s.match_available = 0;
+  }
+  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_BLOCK_DONE;
+}
+
+
+/* ===========================================================================
+ * For Z_RLE, simply look for runs of bytes, generate matches only of distance
+ * one.  Do not maintain a hash table.  (It will be regenerated if this run of
+ * deflate switches away from Z_RLE.)
+ */
+function deflate_rle(s, flush) {
+  var bflush;            /* set if current block must be flushed */
+  var prev;              /* byte at distance one to match */
+  var scan, strend;      /* scan goes up to strend for length of run */
+
+  var _win = s.window;
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the longest run, plus one for the unrolled loop.
+     */
+    if (s.lookahead <= MAX_MATCH) {
+      fill_window(s);
+      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* See how many times the previous byte repeats */
+    s.match_length = 0;
+    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
+      scan = s.strstart - 1;
+      prev = _win[scan];
+      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
+        strend = s.strstart + MAX_MATCH;
+        do {
+          /*jshint noempty:false*/
+        } while (prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 scan < strend);
+        s.match_length = MAX_MATCH - (strend - scan);
+        if (s.match_length > s.lookahead) {
+          s.match_length = s.lookahead;
+        }
+      }
+      //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+    }
+
+    /* Emit match if have run of MIN_MATCH or longer, else emit literal */
+    if (s.match_length >= MIN_MATCH) {
+      //check_match(s, s.strstart, s.strstart - 1, s.match_length);
+
+      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+      s.strstart += s.match_length;
+      s.match_length = 0;
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s->window[s->strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
+ * (It will be regenerated if this run of deflate switches away from Huffman.)
+ */
+function deflate_huff(s, flush) {
+  var bflush;             /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we have a literal to write. */
+    if (s.lookahead === 0) {
+      fill_window(s);
+      if (s.lookahead === 0) {
+        if (flush === Z_NO_FLUSH) {
+          return BS_NEED_MORE;
+        }
+        break;      /* flush the current block */
+      }
+    }
+
+    /* Output a literal byte */
+    s.match_length = 0;
+    //Tracevv((stderr,"%c", s->window[s->strstart]));
+    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+    s.lookahead--;
+    s.strstart++;
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+ * exclude worst case performance for pathological files. Better values may be
+ * found for specific files.
+ */
+function Config(good_length, max_lazy, nice_length, max_chain, func) {
+  this.good_length = good_length;
+  this.max_lazy = max_lazy;
+  this.nice_length = nice_length;
+  this.max_chain = max_chain;
+  this.func = func;
+}
+
+var configuration_table;
+
+configuration_table = [
+  /*      good lazy nice chain */
+  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */
+  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */
+  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */
+  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */
+
+  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */
+  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */
+  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */
+  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */
+  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */
+  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */
+];
+
+
+/* ===========================================================================
+ * Initialize the "longest match" routines for a new zlib stream
+ */
+function lm_init(s) {
+  s.window_size = 2 * s.w_size;
+
+  /*** CLEAR_HASH(s); ***/
+  zero(s.head); // Fill with NIL (= 0);
+
+  /* Set the default configuration parameters:
+   */
+  s.max_lazy_match = configuration_table[s.level].max_lazy;
+  s.good_match = configuration_table[s.level].good_length;
+  s.nice_match = configuration_table[s.level].nice_length;
+  s.max_chain_length = configuration_table[s.level].max_chain;
+
+  s.strstart = 0;
+  s.block_start = 0;
+  s.lookahead = 0;
+  s.insert = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  s.ins_h = 0;
+}
+
+
+function DeflateState() {
+  this.strm = null;            /* pointer back to this zlib stream */
+  this.status = 0;            /* as the name implies */
+  this.pending_buf = null;      /* output still pending */
+  this.pending_buf_size = 0;  /* size of pending_buf */
+  this.pending_out = 0;       /* next pending byte to output to the stream */
+  this.pending = 0;           /* nb of bytes in the pending buffer */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.gzhead = null;         /* gzip header information to write */
+  this.gzindex = 0;           /* where in extra, name, or comment */
+  this.method = Z_DEFLATED; /* can only be DEFLATED */
+  this.last_flush = -1;   /* value of flush param for previous deflate call */
+
+  this.w_size = 0;  /* LZ77 window size (32K by default) */
+  this.w_bits = 0;  /* log2(w_size)  (8..16) */
+  this.w_mask = 0;  /* w_size - 1 */
+
+  this.window = null;
+  /* Sliding window. Input bytes are read into the second half of the window,
+   * and move to the first half later to keep a dictionary of at least wSize
+   * bytes. With this organization, matches are limited to a distance of
+   * wSize-MAX_MATCH bytes, but this ensures that IO is always
+   * performed with a length multiple of the block size.
+   */
+
+  this.window_size = 0;
+  /* Actual size of window: 2*wSize, except when the user input buffer
+   * is directly used as sliding window.
+   */
+
+  this.prev = null;
+  /* Link to older string with same hash index. To limit the size of this
+   * array to 64K, this link is maintained only for the last 32K strings.
+   * An index in this array is thus a window index modulo 32K.
+   */
+
+  this.head = null;   /* Heads of the hash chains or NIL. */
+
+  this.ins_h = 0;       /* hash index of string to be inserted */
+  this.hash_size = 0;   /* number of elements in hash table */
+  this.hash_bits = 0;   /* log2(hash_size) */
+  this.hash_mask = 0;   /* hash_size-1 */
+
+  this.hash_shift = 0;
+  /* Number of bits by which ins_h must be shifted at each input
+   * step. It must be such that after MIN_MATCH steps, the oldest
+   * byte no longer takes part in the hash key, that is:
+   *   hash_shift * MIN_MATCH >= hash_bits
+   */
+
+  this.block_start = 0;
+  /* Window position at the beginning of the current output block. Gets
+   * negative when the window is moved backwards.
+   */
+
+  this.match_length = 0;      /* length of best match */
+  this.prev_match = 0;        /* previous match */
+  this.match_available = 0;   /* set if previous match exists */
+  this.strstart = 0;          /* start of string to insert */
+  this.match_start = 0;       /* start of matching string */
+  this.lookahead = 0;         /* number of valid bytes ahead in window */
+
+  this.prev_length = 0;
+  /* Length of the best match at previous step. Matches not greater than this
+   * are discarded. This is used in the lazy match evaluation.
+   */
+
+  this.max_chain_length = 0;
+  /* To speed up deflation, hash chains are never searched beyond this
+   * length.  A higher limit improves compression ratio but degrades the
+   * speed.
+   */
+
+  this.max_lazy_match = 0;
+  /* Attempt to find a better match only when the current match is strictly
+   * smaller than this value. This mechanism is used only for compression
+   * levels >= 4.
+   */
+  // That's alias to max_lazy_match, don't use directly
+  //this.max_insert_length = 0;
+  /* Insert new strings in the hash table only if the match length is not
+   * greater than this length. This saves time but degrades compression.
+   * max_insert_length is used only for compression levels <= 3.
+   */
+
+  this.level = 0;     /* compression level (1..9) */
+  this.strategy = 0;  /* favor or force Huffman coding*/
+
+  this.good_match = 0;
+  /* Use a faster search when the previous match is longer than this */
+
+  this.nice_match = 0; /* Stop searching when current match exceeds this */
+
+              /* used by trees.c: */
+
+  /* Didn't use ct_data typedef below to suppress compiler warning */
+
+  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
+  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
+  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
+
+  // Use flat array of DOUBLE size, with interleaved fata,
+  // because JS does not support effective
+  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);
+  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);
+  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);
+  zero(this.dyn_ltree);
+  zero(this.dyn_dtree);
+  zero(this.bl_tree);
+
+  this.l_desc   = null;         /* desc. for literal tree */
+  this.d_desc   = null;         /* desc. for distance tree */
+  this.bl_desc  = null;         /* desc. for bit length tree */
+
+  //ush bl_count[MAX_BITS+1];
+  this.bl_count = new utils.Buf16(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
+  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */
+  zero(this.heap);
+
+  this.heap_len = 0;               /* number of elements in the heap */
+  this.heap_max = 0;               /* element of largest frequency */
+  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
+   * The same heap array is used to build all trees.
+   */
+
+  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
+  zero(this.depth);
+  /* Depth of each subtree used as tie breaker for trees of equal frequency
+   */
+
+  this.l_buf = 0;          /* buffer index for literals or lengths */
+
+  this.lit_bufsize = 0;
+  /* Size of match buffer for literals/lengths.  There are 4 reasons for
+   * limiting lit_bufsize to 64K:
+   *   - frequencies can be kept in 16 bit counters
+   *   - if compression is not successful for the first block, all input
+   *     data is still in the window so we can still emit a stored block even
+   *     when input comes from standard input.  (This can also be done for
+   *     all blocks if lit_bufsize is not greater than 32K.)
+   *   - if compression is not successful for a file smaller than 64K, we can
+   *     even emit a stored file instead of a stored block (saving 5 bytes).
+   *     This is applicable only for zip (not gzip or zlib).
+   *   - creating new Huffman trees less frequently may not provide fast
+   *     adaptation to changes in the input data statistics. (Take for
+   *     example a binary file with poorly compressible code followed by
+   *     a highly compressible string table.) Smaller buffer sizes give
+   *     fast adaptation but have of course the overhead of transmitting
+   *     trees more frequently.
+   *   - I can't count above 4
+   */
+
+  this.last_lit = 0;      /* running index in l_buf */
+
+  this.d_buf = 0;
+  /* Buffer index for distances. To simplify the code, d_buf and l_buf have
+   * the same number of elements. To use different lengths, an extra flag
+   * array would be necessary.
+   */
+
+  this.opt_len = 0;       /* bit length of current block with optimal trees */
+  this.static_len = 0;    /* bit length of current block with static trees */
+  this.matches = 0;       /* number of string matches in current block */
+  this.insert = 0;        /* bytes at end of window left to insert */
+
+
+  this.bi_buf = 0;
+  /* Output buffer. bits are inserted starting at the bottom (least
+   * significant bits).
+   */
+  this.bi_valid = 0;
+  /* Number of valid bits in bi_buf.  All bits above the last valid bit
+   * are always zero.
+   */
+
+  // Used for window memory init. We safely ignore it for JS. That makes
+  // sense only for pointers and memory check tools.
+  //this.high_water = 0;
+  /* High water mark offset in window for initialized bytes -- bytes above
+   * this are set to zero in order to avoid memory check warnings when
+   * longest match routines access bytes past the input.  This is then
+   * updated to the new high water mark.
+   */
+}
+
+
+function deflateResetKeep(strm) {
+  var s;
+
+  if (!strm || !strm.state) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.total_in = strm.total_out = 0;
+  strm.data_type = Z_UNKNOWN;
+
+  s = strm.state;
+  s.pending = 0;
+  s.pending_out = 0;
+
+  if (s.wrap < 0) {
+    s.wrap = -s.wrap;
+    /* was made negative by deflate(..., Z_FINISH); */
+  }
+  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
+  strm.adler = (s.wrap === 2) ?
+    0  // crc32(0, Z_NULL, 0)
+  :
+    1; // adler32(0, Z_NULL, 0)
+  s.last_flush = Z_NO_FLUSH;
+  trees._tr_init(s);
+  return Z_OK;
+}
+
+
+function deflateReset(strm) {
+  var ret = deflateResetKeep(strm);
+  if (ret === Z_OK) {
+    lm_init(strm.state);
+  }
+  return ret;
+}
+
+
+function deflateSetHeader(strm, head) {
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
+  strm.state.gzhead = head;
+  return Z_OK;
+}
+
+
+function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
+  if (!strm) { // === Z_NULL
+    return Z_STREAM_ERROR;
+  }
+  var wrap = 1;
+
+  if (level === Z_DEFAULT_COMPRESSION) {
+    level = 6;
+  }
+
+  if (windowBits < 0) { /* suppress zlib wrapper */
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+
+  else if (windowBits > 15) {
+    wrap = 2;           /* write gzip wrapper instead */
+    windowBits -= 16;
+  }
+
+
+  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
+    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
+    strategy < 0 || strategy > Z_FIXED) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+
+  if (windowBits === 8) {
+    windowBits = 9;
+  }
+  /* until 256-byte window bug fixed */
+
+  var s = new DeflateState();
+
+  strm.state = s;
+  s.strm = strm;
+
+  s.wrap = wrap;
+  s.gzhead = null;
+  s.w_bits = windowBits;
+  s.w_size = 1 << s.w_bits;
+  s.w_mask = s.w_size - 1;
+
+  s.hash_bits = memLevel + 7;
+  s.hash_size = 1 << s.hash_bits;
+  s.hash_mask = s.hash_size - 1;
+  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
+
+  s.window = new utils.Buf8(s.w_size * 2);
+  s.head = new utils.Buf16(s.hash_size);
+  s.prev = new utils.Buf16(s.w_size);
+
+  // Don't need mem init magic for JS.
+  //s.high_water = 0;  /* nothing written to s->window yet */
+
+  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+
+  s.pending_buf_size = s.lit_bufsize * 4;
+
+  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+  //s->pending_buf = (uchf *) overlay;
+  s.pending_buf = new utils.Buf8(s.pending_buf_size);
+
+  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
+  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+  s.d_buf = 1 * s.lit_bufsize;
+
+  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+  s.l_buf = (1 + 2) * s.lit_bufsize;
+
+  s.level = level;
+  s.strategy = strategy;
+  s.method = method;
+
+  return deflateReset(strm);
+}
+
+function deflateInit(strm, level) {
+  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
+}
+
+
+function deflate(strm, flush) {
+  var old_flush, s;
+  var beg, val; // for gzip header write only
+
+  if (!strm || !strm.state ||
+    flush > Z_BLOCK || flush < 0) {
+    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+
+  if (!strm.output ||
+      (!strm.input && strm.avail_in !== 0) ||
+      (s.status === FINISH_STATE && flush !== Z_FINISH)) {
+    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
+  }
+
+  s.strm = strm; /* just in case */
+  old_flush = s.last_flush;
+  s.last_flush = flush;
+
+  /* Write the header */
+  if (s.status === INIT_STATE) {
+
+    if (s.wrap === 2) { // GZIP header
+      strm.adler = 0;  //crc32(0L, Z_NULL, 0);
+      put_byte(s, 31);
+      put_byte(s, 139);
+      put_byte(s, 8);
+      if (!s.gzhead) { // s->gzhead == Z_NULL
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, OS_CODE);
+        s.status = BUSY_STATE;
+      }
+      else {
+        put_byte(s, (s.gzhead.text ? 1 : 0) +
+                    (s.gzhead.hcrc ? 2 : 0) +
+                    (!s.gzhead.extra ? 0 : 4) +
+                    (!s.gzhead.name ? 0 : 8) +
+                    (!s.gzhead.comment ? 0 : 16)
+                );
+        put_byte(s, s.gzhead.time & 0xff);
+        put_byte(s, (s.gzhead.time >> 8) & 0xff);
+        put_byte(s, (s.gzhead.time >> 16) & 0xff);
+        put_byte(s, (s.gzhead.time >> 24) & 0xff);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, s.gzhead.os & 0xff);
+        if (s.gzhead.extra && s.gzhead.extra.length) {
+          put_byte(s, s.gzhead.extra.length & 0xff);
+          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
+        }
+        if (s.gzhead.hcrc) {
+          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
+        }
+        s.gzindex = 0;
+        s.status = EXTRA_STATE;
+      }
+    }
+    else // DEFLATE header
+    {
+      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
+      var level_flags = -1;
+
+      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
+        level_flags = 0;
+      } else if (s.level < 6) {
+        level_flags = 1;
+      } else if (s.level === 6) {
+        level_flags = 2;
+      } else {
+        level_flags = 3;
+      }
+      header |= (level_flags << 6);
+      if (s.strstart !== 0) { header |= PRESET_DICT; }
+      header += 31 - (header % 31);
+
+      s.status = BUSY_STATE;
+      putShortMSB(s, header);
+
+      /* Save the adler32 of the preset dictionary: */
+      if (s.strstart !== 0) {
+        putShortMSB(s, strm.adler >>> 16);
+        putShortMSB(s, strm.adler & 0xffff);
+      }
+      strm.adler = 1; // adler32(0L, Z_NULL, 0);
+    }
+  }
+
+//#ifdef GZIP
+  if (s.status === EXTRA_STATE) {
+    if (s.gzhead.extra/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+
+      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            break;
+          }
+        }
+        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
+        s.gzindex++;
+      }
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (s.gzindex === s.gzhead.extra.length) {
+        s.gzindex = 0;
+        s.status = NAME_STATE;
+      }
+    }
+    else {
+      s.status = NAME_STATE;
+    }
+  }
+  if (s.status === NAME_STATE) {
+    if (s.gzhead.name/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.name.length) {
+          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.gzindex = 0;
+        s.status = COMMENT_STATE;
+      }
+    }
+    else {
+      s.status = COMMENT_STATE;
+    }
+  }
+  if (s.status === COMMENT_STATE) {
+    if (s.gzhead.comment/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.comment.length) {
+          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.status = HCRC_STATE;
+      }
+    }
+    else {
+      s.status = HCRC_STATE;
+    }
+  }
+  if (s.status === HCRC_STATE) {
+    if (s.gzhead.hcrc) {
+      if (s.pending + 2 > s.pending_buf_size) {
+        flush_pending(strm);
+      }
+      if (s.pending + 2 <= s.pending_buf_size) {
+        put_byte(s, strm.adler & 0xff);
+        put_byte(s, (strm.adler >> 8) & 0xff);
+        strm.adler = 0; //crc32(0L, Z_NULL, 0);
+        s.status = BUSY_STATE;
+      }
+    }
+    else {
+      s.status = BUSY_STATE;
+    }
+  }
+//#endif
+
+  /* Flush as much pending output as possible */
+  if (s.pending !== 0) {
+    flush_pending(strm);
+    if (strm.avail_out === 0) {
+      /* Since avail_out is 0, deflate will be called again with
+       * more output space, but possibly with both pending and
+       * avail_in equal to zero. There won't be anything to do,
+       * but this is not an error situation so make sure we
+       * return OK instead of BUF_ERROR at next call of deflate:
+       */
+      s.last_flush = -1;
+      return Z_OK;
+    }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
+    flush !== Z_FINISH) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* User must not provide more input after the first FINISH: */
+  if (s.status === FINISH_STATE && strm.avail_in !== 0) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* Start a new block or continue the current one.
+   */
+  if (strm.avail_in !== 0 || s.lookahead !== 0 ||
+    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
+    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
+      (s.strategy === Z_RLE ? deflate_rle(s, flush) :
+        configuration_table[s.level].func(s, flush));
+
+    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
+      s.status = FINISH_STATE;
+    }
+    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
+      if (strm.avail_out === 0) {
+        s.last_flush = -1;
+        /* avoid BUF_ERROR next call, see above */
+      }
+      return Z_OK;
+      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
+       * of deflate should use the same flush parameter to make sure
+       * that the flush is complete. So we don't have to output an
+       * empty block here, this will be done at next call. This also
+       * ensures that for a very small output buffer, we emit at most
+       * one empty block.
+       */
+    }
+    if (bstate === BS_BLOCK_DONE) {
+      if (flush === Z_PARTIAL_FLUSH) {
+        trees._tr_align(s);
+      }
+      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
+
+        trees._tr_stored_block(s, 0, 0, false);
+        /* For a full flush, this empty block will be recognized
+         * as a special marker by inflate_sync().
+         */
+        if (flush === Z_FULL_FLUSH) {
+          /*** CLEAR_HASH(s); ***/             /* forget history */
+          zero(s.head); // Fill with NIL (= 0);
+
+          if (s.lookahead === 0) {
+            s.strstart = 0;
+            s.block_start = 0;
+            s.insert = 0;
+          }
+        }
+      }
+      flush_pending(strm);
+      if (strm.avail_out === 0) {
+        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
+        return Z_OK;
+      }
+    }
+  }
+  //Assert(strm->avail_out > 0, "bug2");
+  //if (strm.avail_out <= 0) { throw new Error("bug2");}
+
+  if (flush !== Z_FINISH) { return Z_OK; }
+  if (s.wrap <= 0) { return Z_STREAM_END; }
+
+  /* Write the trailer */
+  if (s.wrap === 2) {
+    put_byte(s, strm.adler & 0xff);
+    put_byte(s, (strm.adler >> 8) & 0xff);
+    put_byte(s, (strm.adler >> 16) & 0xff);
+    put_byte(s, (strm.adler >> 24) & 0xff);
+    put_byte(s, strm.total_in & 0xff);
+    put_byte(s, (strm.total_in >> 8) & 0xff);
+    put_byte(s, (strm.total_in >> 16) & 0xff);
+    put_byte(s, (strm.total_in >> 24) & 0xff);
+  }
+  else
+  {
+    putShortMSB(s, strm.adler >>> 16);
+    putShortMSB(s, strm.adler & 0xffff);
+  }
+
+  flush_pending(strm);
+  /* If avail_out is zero, the application will call deflate again
+   * to flush the rest.
+   */
+  if (s.wrap > 0) { s.wrap = -s.wrap; }
+  /* write the trailer only once! */
+  return s.pending !== 0 ? Z_OK : Z_STREAM_END;
+}
+
+function deflateEnd(strm) {
+  var status;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  status = strm.state.status;
+  if (status !== INIT_STATE &&
+    status !== EXTRA_STATE &&
+    status !== NAME_STATE &&
+    status !== COMMENT_STATE &&
+    status !== HCRC_STATE &&
+    status !== BUSY_STATE &&
+    status !== FINISH_STATE
+  ) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.state = null;
+
+  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
+}
+
+
+/* =========================================================================
+ * Initializes the compression dictionary from the given byte
+ * sequence without producing any compressed output.
+ */
+function deflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var s;
+  var str, n;
+  var wrap;
+  var avail;
+  var next;
+  var input;
+  var tmpDict;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+  wrap = s.wrap;
+
+  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* when using zlib wrappers, compute Adler-32 for provided dictionary */
+  if (wrap === 1) {
+    /* adler32(strm->adler, dictionary, dictLength); */
+    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
+  }
+
+  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */
+
+  /* if dictionary would fill window, just replace the history */
+  if (dictLength >= s.w_size) {
+    if (wrap === 0) {            /* already empty otherwise */
+      /*** CLEAR_HASH(s); ***/
+      zero(s.head); // Fill with NIL (= 0);
+      s.strstart = 0;
+      s.block_start = 0;
+      s.insert = 0;
+    }
+    /* use the tail */
+    // dictionary = dictionary.slice(dictLength - s.w_size);
+    tmpDict = new utils.Buf8(s.w_size);
+    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
+    dictionary = tmpDict;
+    dictLength = s.w_size;
+  }
+  /* insert dictionary into window and hash */
+  avail = strm.avail_in;
+  next = strm.next_in;
+  input = strm.input;
+  strm.avail_in = dictLength;
+  strm.next_in = 0;
+  strm.input = dictionary;
+  fill_window(s);
+  while (s.lookahead >= MIN_MATCH) {
+    str = s.strstart;
+    n = s.lookahead - (MIN_MATCH - 1);
+    do {
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+      s.prev[str & s.w_mask] = s.head[s.ins_h];
+
+      s.head[s.ins_h] = str;
+      str++;
+    } while (--n);
+    s.strstart = str;
+    s.lookahead = MIN_MATCH - 1;
+    fill_window(s);
+  }
+  s.strstart += s.lookahead;
+  s.block_start = s.strstart;
+  s.insert = s.lookahead;
+  s.lookahead = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  strm.next_in = next;
+  strm.input = input;
+  strm.avail_in = avail;
+  s.wrap = wrap;
+  return Z_OK;
+}
+
+
+exports.deflateInit = deflateInit;
+exports.deflateInit2 = deflateInit2;
+exports.deflateReset = deflateReset;
+exports.deflateResetKeep = deflateResetKeep;
+exports.deflateSetHeader = deflateSetHeader;
+exports.deflate = deflate;
+exports.deflateEnd = deflateEnd;
+exports.deflateSetDictionary = deflateSetDictionary;
+exports.deflateInfo = 'pako deflate (from Nodeca project)';
+
+/* Not implemented
+exports.deflateBound = deflateBound;
+exports.deflateCopy = deflateCopy;
+exports.deflateParams = deflateParams;
+exports.deflatePending = deflatePending;
+exports.deflatePrime = deflatePrime;
+exports.deflateTune = deflateTune;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function GZheader() {
+  /* true if compressed data believed to be text */
+  this.text       = 0;
+  /* modification time */
+  this.time       = 0;
+  /* extra flags (not used when writing a gzip file) */
+  this.xflags     = 0;
+  /* operating system */
+  this.os         = 0;
+  /* pointer to extra field or Z_NULL if none */
+  this.extra      = null;
+  /* extra field length (valid if extra != Z_NULL) */
+  this.extra_len  = 0; // Actually, we don't need it in JS,
+                       // but leave for few code modifications
+
+  //
+  // Setup limits is not necessary because in js we should not preallocate memory
+  // for inflate use constant limit in 65536 bytes
+  //
+
+  /* space at extra (only when reading header) */
+  // this.extra_max  = 0;
+  /* pointer to zero-terminated file name or Z_NULL */
+  this.name       = '';
+  /* space at name (only when reading header) */
+  // this.name_max   = 0;
+  /* pointer to zero-terminated comment or Z_NULL */
+  this.comment    = '';
+  /* space at comment (only when reading header) */
+  // this.comm_max   = 0;
+  /* true if there was or will be a header crc */
+  this.hcrc       = 0;
+  /* true when done reading gzip header (not used when writing a gzip file) */
+  this.done       = false;
+}
+
+module.exports = GZheader;
+
+},{}],69:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// See state defs from inflate.js
+var BAD = 30;       /* got a data error -- remain here until reset */
+var TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+
+/*
+   Decode literal, length, and distance codes and write out the resulting
+   literal and match bytes until either not enough input or output is
+   available, an end-of-block is encountered, or a data error is encountered.
+   When large enough input and output buffers are supplied to inflate(), for
+   example, a 16K input buffer and a 64K output buffer, more than 95% of the
+   inflate execution time is spent in this routine.
+
+   Entry assumptions:
+
+        state.mode === LEN
+        strm.avail_in >= 6
+        strm.avail_out >= 258
+        start >= strm.avail_out
+        state.bits < 8
+
+   On return, state.mode is one of:
+
+        LEN -- ran out of enough output space or enough available input
+        TYPE -- reached end of block code, inflate() to interpret next block
+        BAD -- error in block data
+
+   Notes:
+
+    - The maximum input bits used by a length/distance pair is 15 bits for the
+      length code, 5 bits for the length extra, 15 bits for the distance code,
+      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
+      Therefore if strm.avail_in >= 6, then there is enough input to avoid
+      checking for available input while decoding.
+
+    - The maximum bytes that a single length/distance pair can output is 258
+      bytes, which is the maximum length that can be coded.  inflate_fast()
+      requires strm.avail_out >= 258 for each loop to avoid checking for
+      output space.
+ */
+module.exports = function inflate_fast(strm, start) {
+  var state;
+  var _in;                    /* local strm.input */
+  var last;                   /* have enough input while in < last */
+  var _out;                   /* local strm.output */
+  var beg;                    /* inflate()'s initial strm.output */
+  var end;                    /* while out < end, enough space available */
+//#ifdef INFLATE_STRICT
+  var dmax;                   /* maximum distance from zlib header */
+//#endif
+  var wsize;                  /* window size or zero if not using window */
+  var whave;                  /* valid bytes in the window */
+  var wnext;                  /* window write index */
+  // Use `s_window` instead `window`, avoid conflict with instrumentation tools
+  var s_window;               /* allocated sliding window, if wsize != 0 */
+  var hold;                   /* local strm.hold */
+  var bits;                   /* local strm.bits */
+  var lcode;                  /* local strm.lencode */
+  var dcode;                  /* local strm.distcode */
+  var lmask;                  /* mask for first level of length codes */
+  var dmask;                  /* mask for first level of distance codes */
+  var here;                   /* retrieved table entry */
+  var op;                     /* code bits, operation, extra bits, or */
+                              /*  window position, window bytes to copy */
+  var len;                    /* match length, unused bytes */
+  var dist;                   /* match distance */
+  var from;                   /* where to copy match from */
+  var from_source;
+
+
+  var input, output; // JS specific, because we have no pointers
+
+  /* copy state to local variables */
+  state = strm.state;
+  //here = state.here;
+  _in = strm.next_in;
+  input = strm.input;
+  last = _in + (strm.avail_in - 5);
+  _out = strm.next_out;
+  output = strm.output;
+  beg = _out - (start - strm.avail_out);
+  end = _out + (strm.avail_out - 257);
+//#ifdef INFLATE_STRICT
+  dmax = state.dmax;
+//#endif
+  wsize = state.wsize;
+  whave = state.whave;
+  wnext = state.wnext;
+  s_window = state.window;
+  hold = state.hold;
+  bits = state.bits;
+  lcode = state.lencode;
+  dcode = state.distcode;
+  lmask = (1 << state.lenbits) - 1;
+  dmask = (1 << state.distbits) - 1;
+
+
+  /* decode literals and length/distances until end-of-block or not enough
+     input data or output space */
+
+  top:
+  do {
+    if (bits < 15) {
+      hold += input[_in++] << bits;
+      bits += 8;
+      hold += input[_in++] << bits;
+      bits += 8;
+    }
+
+    here = lcode[hold & lmask];
+
+    dolen:
+    for (;;) { // Goto emulation
+      op = here >>> 24/*here.bits*/;
+      hold >>>= op;
+      bits -= op;
+      op = (here >>> 16) & 0xff/*here.op*/;
+      if (op === 0) {                          /* literal */
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        output[_out++] = here & 0xffff/*here.val*/;
+      }
+      else if (op & 16) {                     /* length base */
+        len = here & 0xffff/*here.val*/;
+        op &= 15;                           /* number of extra bits */
+        if (op) {
+          if (bits < op) {
+            hold += input[_in++] << bits;
+            bits += 8;
+          }
+          len += hold & ((1 << op) - 1);
+          hold >>>= op;
+          bits -= op;
+        }
+        //Tracevv((stderr, "inflate:         length %u\n", len));
+        if (bits < 15) {
+          hold += input[_in++] << bits;
+          bits += 8;
+          hold += input[_in++] << bits;
+          bits += 8;
+        }
+        here = dcode[hold & dmask];
+
+        dodist:
+        for (;;) { // goto emulation
+          op = here >>> 24/*here.bits*/;
+          hold >>>= op;
+          bits -= op;
+          op = (here >>> 16) & 0xff/*here.op*/;
+
+          if (op & 16) {                      /* distance base */
+            dist = here & 0xffff/*here.val*/;
+            op &= 15;                       /* number of extra bits */
+            if (bits < op) {
+              hold += input[_in++] << bits;
+              bits += 8;
+              if (bits < op) {
+                hold += input[_in++] << bits;
+                bits += 8;
+              }
+            }
+            dist += hold & ((1 << op) - 1);
+//#ifdef INFLATE_STRICT
+            if (dist > dmax) {
+              strm.msg = 'invalid distance too far back';
+              state.mode = BAD;
+              break top;
+            }
+//#endif
+            hold >>>= op;
+            bits -= op;
+            //Tracevv((stderr, "inflate:         distance %u\n", dist));
+            op = _out - beg;                /* max distance in output */
+            if (dist > op) {                /* see if copy from window */
+              op = dist - op;               /* distance back in window */
+              if (op > whave) {
+                if (state.sane) {
+                  strm.msg = 'invalid distance too far back';
+                  state.mode = BAD;
+                  break top;
+                }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//                if (len <= op - whave) {
+//                  do {
+//                    output[_out++] = 0;
+//                  } while (--len);
+//                  continue top;
+//                }
+//                len -= op - whave;
+//                do {
+//                  output[_out++] = 0;
+//                } while (--op > whave);
+//                if (op === 0) {
+//                  from = _out - dist;
+//                  do {
+//                    output[_out++] = output[from++];
+//                  } while (--len);
+//                  continue top;
+//                }
+//#endif
+              }
+              from = 0; // window index
+              from_source = s_window;
+              if (wnext === 0) {           /* very common case */
+                from += wsize - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              else if (wnext < op) {      /* wrap around window */
+                from += wsize + wnext - op;
+                op -= wnext;
+                if (op < len) {         /* some from end of window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = 0;
+                  if (wnext < len) {  /* some from start of window */
+                    op = wnext;
+                    len -= op;
+                    do {
+                      output[_out++] = s_window[from++];
+                    } while (--op);
+                    from = _out - dist;      /* rest from output */
+                    from_source = output;
+                  }
+                }
+              }
+              else {                      /* contiguous in window */
+                from += wnext - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              while (len > 2) {
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                len -= 3;
+              }
+              if (len) {
+                output[_out++] = from_source[from++];
+                if (len > 1) {
+                  output[_out++] = from_source[from++];
+                }
+              }
+            }
+            else {
+              from = _out - dist;          /* copy direct from output */
+              do {                        /* minimum length is three */
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                len -= 3;
+              } while (len > 2);
+              if (len) {
+                output[_out++] = output[from++];
+                if (len > 1) {
+                  output[_out++] = output[from++];
+                }
+              }
+            }
+          }
+          else if ((op & 64) === 0) {          /* 2nd level distance code */
+            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+            continue dodist;
+          }
+          else {
+            strm.msg = 'invalid distance code';
+            state.mode = BAD;
+            break top;
+          }
+
+          break; // need to emulate goto via "continue"
+        }
+      }
+      else if ((op & 64) === 0) {              /* 2nd level length code */
+        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+        continue dolen;
+      }
+      else if (op & 32) {                     /* end-of-block */
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.mode = TYPE;
+        break top;
+      }
+      else {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break top;
+      }
+
+      break; // need to emulate goto via "continue"
+    }
+  } while (_in < last && _out < end);
+
+  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+  len = bits >> 3;
+  _in -= len;
+  bits -= len << 3;
+  hold &= (1 << bits) - 1;
+
+  /* update state and return */
+  strm.next_in = _in;
+  strm.next_out = _out;
+  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
+  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
+  state.hold = hold;
+  state.bits = bits;
+  return;
+};
+
+},{}],70:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils         = require('../utils/common');
+var adler32       = require('./adler32');
+var crc32         = require('./crc32');
+var inflate_fast  = require('./inffast');
+var inflate_table = require('./inftrees');
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+//var Z_NO_FLUSH      = 0;
+//var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+//var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+
+/* STATES ====================================================================*/
+/* ===========================================================================*/
+
+
+var    HEAD = 1;       /* i: waiting for magic header */
+var    FLAGS = 2;      /* i: waiting for method and flags (gzip) */
+var    TIME = 3;       /* i: waiting for modification time (gzip) */
+var    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */
+var    EXLEN = 5;      /* i: waiting for extra length (gzip) */
+var    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */
+var    NAME = 7;       /* i: waiting for end of file name (gzip) */
+var    COMMENT = 8;    /* i: waiting for end of comment (gzip) */
+var    HCRC = 9;       /* i: waiting for header crc (gzip) */
+var    DICTID = 10;    /* i: waiting for dictionary check value */
+var    DICT = 11;      /* waiting for inflateSetDictionary() call */
+var        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+var        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */
+var        STORED = 14;    /* i: waiting for stored size (length and complement) */
+var        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */
+var        COPY = 16;      /* i/o: waiting for input or output to copy stored block */
+var        TABLE = 17;     /* i: waiting for dynamic block table lengths */
+var        LENLENS = 18;   /* i: waiting for code length code lengths */
+var        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */
+var            LEN_ = 20;      /* i: same as LEN below, but only first time in */
+var            LEN = 21;       /* i: waiting for length/lit/eob code */
+var            LENEXT = 22;    /* i: waiting for length extra bits */
+var            DIST = 23;      /* i: waiting for distance code */
+var            DISTEXT = 24;   /* i: waiting for distance extra bits */
+var            MATCH = 25;     /* o: waiting for output space to copy string */
+var            LIT = 26;       /* o: waiting for output space to write literal */
+var    CHECK = 27;     /* i: waiting for 32-bit check value */
+var    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */
+var    DONE = 29;      /* finished check, done -- remain here until reset */
+var    BAD = 30;       /* got a data error -- remain here until reset */
+var    MEM = 31;       /* got an inflate() memory error -- remain here until reset */
+var    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */
+
+/* ===========================================================================*/
+
+
+
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);
+
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_WBITS = MAX_WBITS;
+
+
+function zswap32(q) {
+  return  (((q >>> 24) & 0xff) +
+          ((q >>> 8) & 0xff00) +
+          ((q & 0xff00) << 8) +
+          ((q & 0xff) << 24));
+}
+
+
+function InflateState() {
+  this.mode = 0;             /* current inflate mode */
+  this.last = false;          /* true if processing last block */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.havedict = false;      /* true if dictionary provided */
+  this.flags = 0;             /* gzip header method and flags (0 if zlib) */
+  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */
+  this.check = 0;             /* protected copy of check value */
+  this.total = 0;             /* protected copy of output count */
+  // TODO: may be {}
+  this.head = null;           /* where to save gzip header information */
+
+  /* sliding window */
+  this.wbits = 0;             /* log base 2 of requested window size */
+  this.wsize = 0;             /* window size or zero if not using window */
+  this.whave = 0;             /* valid bytes in the window */
+  this.wnext = 0;             /* window write index */
+  this.window = null;         /* allocated sliding window, if needed */
+
+  /* bit accumulator */
+  this.hold = 0;              /* input bit accumulator */
+  this.bits = 0;              /* number of bits in "in" */
+
+  /* for string and stored block copying */
+  this.length = 0;            /* literal or length of data to copy */
+  this.offset = 0;            /* distance back to copy string from */
+
+  /* for table and code decoding */
+  this.extra = 0;             /* extra bits needed */
+
+  /* fixed and dynamic code tables */
+  this.lencode = null;          /* starting table for length/literal codes */
+  this.distcode = null;         /* starting table for distance codes */
+  this.lenbits = 0;           /* index bits for lencode */
+  this.distbits = 0;          /* index bits for distcode */
+
+  /* dynamic table building */
+  this.ncode = 0;             /* number of code length code lengths */
+  this.nlen = 0;              /* number of length code lengths */
+  this.ndist = 0;             /* number of distance code lengths */
+  this.have = 0;              /* number of code lengths in lens[] */
+  this.next = null;              /* next available space in codes[] */
+
+  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
+  this.work = new utils.Buf16(288); /* work area for code table building */
+
+  /*
+   because we don't have pointers in js, we use lencode and distcode directly
+   as buffers so we don't need codes
+  */
+  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */
+  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */
+  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */
+  this.sane = 0;                   /* if false, allow invalid distance too far */
+  this.back = 0;                   /* bits back of last unprocessed length/lit */
+  this.was = 0;                    /* initial length of match */
+}
+
+function inflateResetKeep(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  strm.total_in = strm.total_out = state.total = 0;
+  strm.msg = ''; /*Z_NULL*/
+  if (state.wrap) {       /* to support ill-conceived Java test suite */
+    strm.adler = state.wrap & 1;
+  }
+  state.mode = HEAD;
+  state.last = 0;
+  state.havedict = 0;
+  state.dmax = 32768;
+  state.head = null/*Z_NULL*/;
+  state.hold = 0;
+  state.bits = 0;
+  //state.lencode = state.distcode = state.next = state.codes;
+  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
+  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
+
+  state.sane = 1;
+  state.back = -1;
+  //Tracev((stderr, "inflate: reset\n"));
+  return Z_OK;
+}
+
+function inflateReset(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  state.wsize = 0;
+  state.whave = 0;
+  state.wnext = 0;
+  return inflateResetKeep(strm);
+
+}
+
+function inflateReset2(strm, windowBits) {
+  var wrap;
+  var state;
+
+  /* get the state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  /* extract wrap request from windowBits parameter */
+  if (windowBits < 0) {
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+  else {
+    wrap = (windowBits >> 4) + 1;
+    if (windowBits < 48) {
+      windowBits &= 15;
+    }
+  }
+
+  /* set number of window bits, free window if different */
+  if (windowBits && (windowBits < 8 || windowBits > 15)) {
+    return Z_STREAM_ERROR;
+  }
+  if (state.window !== null && state.wbits !== windowBits) {
+    state.window = null;
+  }
+
+  /* update state and reset the rest of it */
+  state.wrap = wrap;
+  state.wbits = windowBits;
+  return inflateReset(strm);
+}
+
+function inflateInit2(strm, windowBits) {
+  var ret;
+  var state;
+
+  if (!strm) { return Z_STREAM_ERROR; }
+  //strm.msg = Z_NULL;                 /* in case we return an error */
+
+  state = new InflateState();
+
+  //if (state === Z_NULL) return Z_MEM_ERROR;
+  //Tracev((stderr, "inflate: allocated\n"));
+  strm.state = state;
+  state.window = null/*Z_NULL*/;
+  ret = inflateReset2(strm, windowBits);
+  if (ret !== Z_OK) {
+    strm.state = null/*Z_NULL*/;
+  }
+  return ret;
+}
+
+function inflateInit(strm) {
+  return inflateInit2(strm, DEF_WBITS);
+}
+
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding.  Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter.  This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time.  However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+var virgin = true;
+
+var lenfix, distfix; // We have no pointers in JS, so keep tables separate
+
+function fixedtables(state) {
+  /* build fixed huffman tables if first call (may not be thread safe) */
+  if (virgin) {
+    var sym;
+
+    lenfix = new utils.Buf32(512);
+    distfix = new utils.Buf32(32);
+
+    /* literal/length table */
+    sym = 0;
+    while (sym < 144) { state.lens[sym++] = 8; }
+    while (sym < 256) { state.lens[sym++] = 9; }
+    while (sym < 280) { state.lens[sym++] = 7; }
+    while (sym < 288) { state.lens[sym++] = 8; }
+
+    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });
+
+    /* distance table */
+    sym = 0;
+    while (sym < 32) { state.lens[sym++] = 5; }
+
+    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });
+
+    /* do this just once */
+    virgin = false;
+  }
+
+  state.lencode = lenfix;
+  state.lenbits = 9;
+  state.distcode = distfix;
+  state.distbits = 5;
+}
+
+
+/*
+ Update the window with the last wsize (normally 32K) bytes written before
+ returning.  If window does not exist yet, create it.  This is only called
+ when a window is already in use, or when output has been written during this
+ inflate call, but the end of the deflate stream has not been reached yet.
+ It is also called to create a window for dictionary data when a dictionary
+ is loaded.
+
+ Providing output buffers larger than 32K to inflate() should provide a speed
+ advantage, since only the last 32K of output is copied to the sliding window
+ upon return from inflate(), and since all distances after the first 32K of
+ output will fall in the output data, making match copies simpler and faster.
+ The advantage may be dependent on the size of the processor's data caches.
+ */
+function updatewindow(strm, src, end, copy) {
+  var dist;
+  var state = strm.state;
+
+  /* if it hasn't been done already, allocate space for the window */
+  if (state.window === null) {
+    state.wsize = 1 << state.wbits;
+    state.wnext = 0;
+    state.whave = 0;
+
+    state.window = new utils.Buf8(state.wsize);
+  }
+
+  /* copy state->wsize or less output bytes into the circular window */
+  if (copy >= state.wsize) {
+    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
+    state.wnext = 0;
+    state.whave = state.wsize;
+  }
+  else {
+    dist = state.wsize - state.wnext;
+    if (dist > copy) {
+      dist = copy;
+    }
+    //zmemcpy(state->window + state->wnext, end - copy, dist);
+    utils.arraySet(state.window, src, end - copy, dist, state.wnext);
+    copy -= dist;
+    if (copy) {
+      //zmemcpy(state->window, end - copy, copy);
+      utils.arraySet(state.window, src, end - copy, copy, 0);
+      state.wnext = copy;
+      state.whave = state.wsize;
+    }
+    else {
+      state.wnext += dist;
+      if (state.wnext === state.wsize) { state.wnext = 0; }
+      if (state.whave < state.wsize) { state.whave += dist; }
+    }
+  }
+  return 0;
+}
+
+function inflate(strm, flush) {
+  var state;
+  var input, output;          // input/output buffers
+  var next;                   /* next input INDEX */
+  var put;                    /* next output INDEX */
+  var have, left;             /* available input and output */
+  var hold;                   /* bit buffer */
+  var bits;                   /* bits in bit buffer */
+  var _in, _out;              /* save starting available input and output */
+  var copy;                   /* number of stored or match bytes to copy */
+  var from;                   /* where to copy match bytes from */
+  var from_source;
+  var here = 0;               /* current decoding table entry */
+  var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
+  //var last;                   /* parent table entry */
+  var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
+  var len;                    /* length to copy for repeats, bits to drop */
+  var ret;                    /* return code */
+  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */
+  var opts;
+
+  var n; // temporary var for NEED_BITS
+
+  var order = /* permutation of code lengths */
+    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
+
+
+  if (!strm || !strm.state || !strm.output ||
+      (!strm.input && strm.avail_in !== 0)) {
+    return Z_STREAM_ERROR;
+  }
+
+  state = strm.state;
+  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */
+
+
+  //--- LOAD() ---
+  put = strm.next_out;
+  output = strm.output;
+  left = strm.avail_out;
+  next = strm.next_in;
+  input = strm.input;
+  have = strm.avail_in;
+  hold = state.hold;
+  bits = state.bits;
+  //---
+
+  _in = have;
+  _out = left;
+  ret = Z_OK;
+
+  inf_leave: // goto emulation
+  for (;;) {
+    switch (state.mode) {
+    case HEAD:
+      if (state.wrap === 0) {
+        state.mode = TYPEDO;
+        break;
+      }
+      //=== NEEDBITS(16);
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */
+        state.check = 0/*crc32(0L, Z_NULL, 0)*/;
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        state.mode = FLAGS;
+        break;
+      }
+      state.flags = 0;           /* expect zlib header */
+      if (state.head) {
+        state.head.done = false;
+      }
+      if (!(state.wrap & 1) ||   /* check if zlib header allowed */
+        (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
+        strm.msg = 'incorrect header check';
+        state.mode = BAD;
+        break;
+      }
+      if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+      len = (hold & 0x0f)/*BITS(4)*/ + 8;
+      if (state.wbits === 0) {
+        state.wbits = len;
+      }
+      else if (len > state.wbits) {
+        strm.msg = 'invalid window size';
+        state.mode = BAD;
+        break;
+      }
+      state.dmax = 1 << len;
+      //Tracev((stderr, "inflate:   zlib header ok\n"));
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = hold & 0x200 ? DICTID : TYPE;
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      break;
+    case FLAGS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.flags = hold;
+      if ((state.flags & 0xff) !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      if (state.flags & 0xe000) {
+        strm.msg = 'unknown header flags set';
+        state.mode = BAD;
+        break;
+      }
+      if (state.head) {
+        state.head.text = ((hold >> 8) & 1);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = TIME;
+      /* falls through */
+    case TIME:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.time = hold;
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC4(state.check, hold)
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        hbuf[2] = (hold >>> 16) & 0xff;
+        hbuf[3] = (hold >>> 24) & 0xff;
+        state.check = crc32(state.check, hbuf, 4, 0);
+        //===
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = OS;
+      /* falls through */
+    case OS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.xflags = (hold & 0xff);
+        state.head.os = (hold >> 8);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = EXLEN;
+      /* falls through */
+    case EXLEN:
+      if (state.flags & 0x0400) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length = hold;
+        if (state.head) {
+          state.head.extra_len = hold;
+        }
+        if (state.flags & 0x0200) {
+          //=== CRC2(state.check, hold);
+          hbuf[0] = hold & 0xff;
+          hbuf[1] = (hold >>> 8) & 0xff;
+          state.check = crc32(state.check, hbuf, 2, 0);
+          //===//
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      else if (state.head) {
+        state.head.extra = null/*Z_NULL*/;
+      }
+      state.mode = EXTRA;
+      /* falls through */
+    case EXTRA:
+      if (state.flags & 0x0400) {
+        copy = state.length;
+        if (copy > have) { copy = have; }
+        if (copy) {
+          if (state.head) {
+            len = state.head.extra_len - state.length;
+            if (!state.head.extra) {
+              // Use untyped array for more conveniend processing later
+              state.head.extra = new Array(state.head.extra_len);
+            }
+            utils.arraySet(
+              state.head.extra,
+              input,
+              next,
+              // extra field is limited to 65536 bytes
+              // - no need for additional size check
+              copy,
+              /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
+              len
+            );
+            //zmemcpy(state.head.extra + len, next,
+            //        len + copy > state.head.extra_max ?
+            //        state.head.extra_max - len : copy);
+          }
+          if (state.flags & 0x0200) {
+            state.check = crc32(state.check, input, copy, next);
+          }
+          have -= copy;
+          next += copy;
+          state.length -= copy;
+        }
+        if (state.length) { break inf_leave; }
+      }
+      state.length = 0;
+      state.mode = NAME;
+      /* falls through */
+    case NAME:
+      if (state.flags & 0x0800) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          // TODO: 2 or 1 bytes?
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.name_max*/)) {
+            state.head.name += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.name = null;
+      }
+      state.length = 0;
+      state.mode = COMMENT;
+      /* falls through */
+    case COMMENT:
+      if (state.flags & 0x1000) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.comm_max*/)) {
+            state.head.comment += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.comment = null;
+      }
+      state.mode = HCRC;
+      /* falls through */
+    case HCRC:
+      if (state.flags & 0x0200) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.check & 0xffff)) {
+          strm.msg = 'header crc mismatch';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      if (state.head) {
+        state.head.hcrc = ((state.flags >> 9) & 1);
+        state.head.done = true;
+      }
+      strm.adler = state.check = 0;
+      state.mode = TYPE;
+      break;
+    case DICTID:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      strm.adler = state.check = zswap32(hold);
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = DICT;
+      /* falls through */
+    case DICT:
+      if (state.havedict === 0) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        return Z_NEED_DICT;
+      }
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = TYPE;
+      /* falls through */
+    case TYPE:
+      if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case TYPEDO:
+      if (state.last) {
+        //--- BYTEBITS() ---//
+        hold >>>= bits & 7;
+        bits -= bits & 7;
+        //---//
+        state.mode = CHECK;
+        break;
+      }
+      //=== NEEDBITS(3); */
+      while (bits < 3) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.last = (hold & 0x01)/*BITS(1)*/;
+      //--- DROPBITS(1) ---//
+      hold >>>= 1;
+      bits -= 1;
+      //---//
+
+      switch ((hold & 0x03)/*BITS(2)*/) {
+      case 0:                             /* stored block */
+        //Tracev((stderr, "inflate:     stored block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = STORED;
+        break;
+      case 1:                             /* fixed block */
+        fixedtables(state);
+        //Tracev((stderr, "inflate:     fixed codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = LEN_;             /* decode codes */
+        if (flush === Z_TREES) {
+          //--- DROPBITS(2) ---//
+          hold >>>= 2;
+          bits -= 2;
+          //---//
+          break inf_leave;
+        }
+        break;
+      case 2:                             /* dynamic block */
+        //Tracev((stderr, "inflate:     dynamic codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = TABLE;
+        break;
+      case 3:
+        strm.msg = 'invalid block type';
+        state.mode = BAD;
+      }
+      //--- DROPBITS(2) ---//
+      hold >>>= 2;
+      bits -= 2;
+      //---//
+      break;
+    case STORED:
+      //--- BYTEBITS() ---// /* go to byte boundary */
+      hold >>>= bits & 7;
+      bits -= bits & 7;
+      //---//
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
+        strm.msg = 'invalid stored block lengths';
+        state.mode = BAD;
+        break;
+      }
+      state.length = hold & 0xffff;
+      //Tracev((stderr, "inflate:       stored length %u\n",
+      //        state.length));
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = COPY_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case COPY_:
+      state.mode = COPY;
+      /* falls through */
+    case COPY:
+      copy = state.length;
+      if (copy) {
+        if (copy > have) { copy = have; }
+        if (copy > left) { copy = left; }
+        if (copy === 0) { break inf_leave; }
+        //--- zmemcpy(put, next, copy); ---
+        utils.arraySet(output, input, next, copy, put);
+        //---//
+        have -= copy;
+        next += copy;
+        left -= copy;
+        put += copy;
+        state.length -= copy;
+        break;
+      }
+      //Tracev((stderr, "inflate:       stored end\n"));
+      state.mode = TYPE;
+      break;
+    case TABLE:
+      //=== NEEDBITS(14); */
+      while (bits < 14) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+//#ifndef PKZIP_BUG_WORKAROUND
+      if (state.nlen > 286 || state.ndist > 30) {
+        strm.msg = 'too many length or distance symbols';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracev((stderr, "inflate:       table sizes ok\n"));
+      state.have = 0;
+      state.mode = LENLENS;
+      /* falls through */
+    case LENLENS:
+      while (state.have < state.ncode) {
+        //=== NEEDBITS(3);
+        while (bits < 3) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
+        //--- DROPBITS(3) ---//
+        hold >>>= 3;
+        bits -= 3;
+        //---//
+      }
+      while (state.have < 19) {
+        state.lens[order[state.have++]] = 0;
+      }
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      //state.next = state.codes;
+      //state.lencode = state.next;
+      // Switch to use dynamic table
+      state.lencode = state.lendyn;
+      state.lenbits = 7;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
+      state.lenbits = opts.bits;
+
+      if (ret) {
+        strm.msg = 'invalid code lengths set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, "inflate:       code lengths ok\n"));
+      state.have = 0;
+      state.mode = CODELENS;
+      /* falls through */
+    case CODELENS:
+      while (state.have < state.nlen + state.ndist) {
+        for (;;) {
+          here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        if (here_val < 16) {
+          //--- DROPBITS(here.bits) ---//
+          hold >>>= here_bits;
+          bits -= here_bits;
+          //---//
+          state.lens[state.have++] = here_val;
+        }
+        else {
+          if (here_val === 16) {
+            //=== NEEDBITS(here.bits + 2);
+            n = here_bits + 2;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            if (state.have === 0) {
+              strm.msg = 'invalid bit length repeat';
+              state.mode = BAD;
+              break;
+            }
+            len = state.lens[state.have - 1];
+            copy = 3 + (hold & 0x03);//BITS(2);
+            //--- DROPBITS(2) ---//
+            hold >>>= 2;
+            bits -= 2;
+            //---//
+          }
+          else if (here_val === 17) {
+            //=== NEEDBITS(here.bits + 3);
+            n = here_bits + 3;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 3 + (hold & 0x07);//BITS(3);
+            //--- DROPBITS(3) ---//
+            hold >>>= 3;
+            bits -= 3;
+            //---//
+          }
+          else {
+            //=== NEEDBITS(here.bits + 7);
+            n = here_bits + 7;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 11 + (hold & 0x7f);//BITS(7);
+            //--- DROPBITS(7) ---//
+            hold >>>= 7;
+            bits -= 7;
+            //---//
+          }
+          if (state.have + copy > state.nlen + state.ndist) {
+            strm.msg = 'invalid bit length repeat';
+            state.mode = BAD;
+            break;
+          }
+          while (copy--) {
+            state.lens[state.have++] = len;
+          }
+        }
+      }
+
+      /* handle error breaks in while */
+      if (state.mode === BAD) { break; }
+
+      /* check for end-of-block code (better have one) */
+      if (state.lens[256] === 0) {
+        strm.msg = 'invalid code -- missing end-of-block';
+        state.mode = BAD;
+        break;
+      }
+
+      /* build code tables -- note: do not change the lenbits or distbits
+         values here (9 and 6) without reading the comments in inftrees.h
+         concerning the ENOUGH constants, which depend on those values */
+      state.lenbits = 9;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.lenbits = opts.bits;
+      // state.lencode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid literal/lengths set';
+        state.mode = BAD;
+        break;
+      }
+
+      state.distbits = 6;
+      //state.distcode.copy(state.codes);
+      // Switch to use dynamic table
+      state.distcode = state.distdyn;
+      opts = { bits: state.distbits };
+      ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.distbits = opts.bits;
+      // state.distcode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid distances set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, 'inflate:       codes ok\n'));
+      state.mode = LEN_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case LEN_:
+      state.mode = LEN;
+      /* falls through */
+    case LEN:
+      if (have >= 6 && left >= 258) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        inflate_fast(strm, _out);
+        //--- LOAD() ---
+        put = strm.next_out;
+        output = strm.output;
+        left = strm.avail_out;
+        next = strm.next_in;
+        input = strm.input;
+        have = strm.avail_in;
+        hold = state.hold;
+        bits = state.bits;
+        //---
+
+        if (state.mode === TYPE) {
+          state.back = -1;
+        }
+        break;
+      }
+      state.back = 0;
+      for (;;) {
+        here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if (here_bits <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if (here_op && (here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.lencode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      state.length = here_val;
+      if (here_op === 0) {
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        state.mode = LIT;
+        break;
+      }
+      if (here_op & 32) {
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.back = -1;
+        state.mode = TYPE;
+        break;
+      }
+      if (here_op & 64) {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break;
+      }
+      state.extra = here_op & 15;
+      state.mode = LENEXT;
+      /* falls through */
+    case LENEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+      //Tracevv((stderr, "inflate:         length %u\n", state.length));
+      state.was = state.length;
+      state.mode = DIST;
+      /* falls through */
+    case DIST:
+      for (;;) {
+        here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if ((here_bits) <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if ((here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.distcode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      if (here_op & 64) {
+        strm.msg = 'invalid distance code';
+        state.mode = BAD;
+        break;
+      }
+      state.offset = here_val;
+      state.extra = (here_op) & 15;
+      state.mode = DISTEXT;
+      /* falls through */
+    case DISTEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+//#ifdef INFLATE_STRICT
+      if (state.offset > state.dmax) {
+        strm.msg = 'invalid distance too far back';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracevv((stderr, "inflate:         distance %u\n", state.offset));
+      state.mode = MATCH;
+      /* falls through */
+    case MATCH:
+      if (left === 0) { break inf_leave; }
+      copy = _out - left;
+      if (state.offset > copy) {         /* copy from window */
+        copy = state.offset - copy;
+        if (copy > state.whave) {
+          if (state.sane) {
+            strm.msg = 'invalid distance too far back';
+            state.mode = BAD;
+            break;
+          }
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//          Trace((stderr, "inflate.c too far\n"));
+//          copy -= state.whave;
+//          if (copy > state.length) { copy = state.length; }
+//          if (copy > left) { copy = left; }
+//          left -= copy;
+//          state.length -= copy;
+//          do {
+//            output[put++] = 0;
+//          } while (--copy);
+//          if (state.length === 0) { state.mode = LEN; }
+//          break;
+//#endif
+        }
+        if (copy > state.wnext) {
+          copy -= state.wnext;
+          from = state.wsize - copy;
+        }
+        else {
+          from = state.wnext - copy;
+        }
+        if (copy > state.length) { copy = state.length; }
+        from_source = state.window;
+      }
+      else {                              /* copy from output */
+        from_source = output;
+        from = put - state.offset;
+        copy = state.length;
+      }
+      if (copy > left) { copy = left; }
+      left -= copy;
+      state.length -= copy;
+      do {
+        output[put++] = from_source[from++];
+      } while (--copy);
+      if (state.length === 0) { state.mode = LEN; }
+      break;
+    case LIT:
+      if (left === 0) { break inf_leave; }
+      output[put++] = state.length;
+      left--;
+      state.mode = LEN;
+      break;
+    case CHECK:
+      if (state.wrap) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          // Use '|' insdead of '+' to make sure that result is signed
+          hold |= input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        _out -= left;
+        strm.total_out += _out;
+        state.total += _out;
+        if (_out) {
+          strm.adler = state.check =
+              /*UPDATE(state.check, put - _out, _out);*/
+              (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
+
+        }
+        _out = left;
+        // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
+        if ((state.flags ? hold : zswap32(hold)) !== state.check) {
+          strm.msg = 'incorrect data check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   check matches trailer\n"));
+      }
+      state.mode = LENGTH;
+      /* falls through */
+    case LENGTH:
+      if (state.wrap && state.flags) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.total & 0xffffffff)) {
+          strm.msg = 'incorrect length check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   length matches trailer\n"));
+      }
+      state.mode = DONE;
+      /* falls through */
+    case DONE:
+      ret = Z_STREAM_END;
+      break inf_leave;
+    case BAD:
+      ret = Z_DATA_ERROR;
+      break inf_leave;
+    case MEM:
+      return Z_MEM_ERROR;
+    case SYNC:
+      /* falls through */
+    default:
+      return Z_STREAM_ERROR;
+    }
+  }
+
+  // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
+
+  /*
+     Return from inflate(), updating the total counts and the check value.
+     If there was no progress during the inflate() call, return a buffer
+     error.  Call updatewindow() to create and/or update the window state.
+     Note: a memory error from inflate() is non-recoverable.
+   */
+
+  //--- RESTORE() ---
+  strm.next_out = put;
+  strm.avail_out = left;
+  strm.next_in = next;
+  strm.avail_in = have;
+  state.hold = hold;
+  state.bits = bits;
+  //---
+
+  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
+                      (state.mode < CHECK || flush !== Z_FINISH))) {
+    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
+      state.mode = MEM;
+      return Z_MEM_ERROR;
+    }
+  }
+  _in -= strm.avail_in;
+  _out -= strm.avail_out;
+  strm.total_in += _in;
+  strm.total_out += _out;
+  state.total += _out;
+  if (state.wrap && _out) {
+    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
+      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
+  }
+  strm.data_type = state.bits + (state.last ? 64 : 0) +
+                    (state.mode === TYPE ? 128 : 0) +
+                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
+  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
+    ret = Z_BUF_ERROR;
+  }
+  return ret;
+}
+
+function inflateEnd(strm) {
+
+  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  var state = strm.state;
+  if (state.window) {
+    state.window = null;
+  }
+  strm.state = null;
+  return Z_OK;
+}
+
+function inflateGetHeader(strm, head) {
+  var state;
+
+  /* check state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
+
+  /* save header structure */
+  state.head = head;
+  head.done = false;
+  return Z_OK;
+}
+
+function inflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var state;
+  var dictid;
+  var ret;
+
+  /* check state */
+  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  if (state.wrap !== 0 && state.mode !== DICT) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* check for correct dictionary identifier */
+  if (state.mode === DICT) {
+    dictid = 1; /* adler32(0, null, 0)*/
+    /* dictid = adler32(dictid, dictionary, dictLength); */
+    dictid = adler32(dictid, dictionary, dictLength, 0);
+    if (dictid !== state.check) {
+      return Z_DATA_ERROR;
+    }
+  }
+  /* copy dictionary to window using updatewindow(), which will amend the
+   existing dictionary if appropriate */
+  ret = updatewindow(strm, dictionary, dictLength, dictLength);
+  if (ret) {
+    state.mode = MEM;
+    return Z_MEM_ERROR;
+  }
+  state.havedict = 1;
+  // Tracev((stderr, "inflate:   dictionary set\n"));
+  return Z_OK;
+}
+
+exports.inflateReset = inflateReset;
+exports.inflateReset2 = inflateReset2;
+exports.inflateResetKeep = inflateResetKeep;
+exports.inflateInit = inflateInit;
+exports.inflateInit2 = inflateInit2;
+exports.inflate = inflate;
+exports.inflateEnd = inflateEnd;
+exports.inflateGetHeader = inflateGetHeader;
+exports.inflateSetDictionary = inflateSetDictionary;
+exports.inflateInfo = 'pako inflate (from Nodeca project)';
+
+/* Not implemented
+exports.inflateCopy = inflateCopy;
+exports.inflateGetDictionary = inflateGetDictionary;
+exports.inflateMark = inflateMark;
+exports.inflatePrime = inflatePrime;
+exports.inflateSync = inflateSync;
+exports.inflateSyncPoint = inflateSyncPoint;
+exports.inflateUndermine = inflateUndermine;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+var MAXBITS = 15;
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+var lbase = [ /* Length codes 257..285 base */
+  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
+];
+
+var lext = [ /* Length codes 257..285 extra */
+  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
+  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
+];
+
+var dbase = [ /* Distance codes 0..29 base */
+  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+  8193, 12289, 16385, 24577, 0, 0
+];
+
+var dext = [ /* Distance codes 0..29 extra */
+  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
+  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
+  28, 28, 29, 29, 64, 64
+];
+
+module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
+{
+  var bits = opts.bits;
+      //here = opts.here; /* table entry for duplication */
+
+  var len = 0;               /* a code's length in bits */
+  var sym = 0;               /* index of code symbols */
+  var min = 0, max = 0;          /* minimum and maximum code lengths */
+  var root = 0;              /* number of index bits for root table */
+  var curr = 0;              /* number of index bits for current table */
+  var drop = 0;              /* code bits to drop for sub-table */
+  var left = 0;                   /* number of prefix codes available */
+  var used = 0;              /* code entries in table used */
+  var huff = 0;              /* Huffman code */
+  var incr;              /* for incrementing code, index */
+  var fill;              /* index for replicating entries */
+  var low;               /* low bits for current root entry */
+  var mask;              /* mask for low root bits */
+  var next;             /* next available space in table */
+  var base = null;     /* base value table to use */
+  var base_index = 0;
+//  var shoextra;    /* extra bits table to use */
+  var end;                    /* use base and extra for symbol > end */
+  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */
+  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */
+  var extra = null;
+  var extra_index = 0;
+
+  var here_bits, here_op, here_val;
+
+  /*
+   Process a set of code lengths to create a canonical Huffman code.  The
+   code lengths are lens[0..codes-1].  Each length corresponds to the
+   symbols 0..codes-1.  The Huffman code is generated by first sorting the
+   symbols by length from short to long, and retaining the symbol order
+   for codes with equal lengths.  Then the code starts with all zero bits
+   for the first code of the shortest length, and the codes are integer
+   increments for the same length, and zeros are appended as the length
+   increases.  For the deflate format, these bits are stored backwards
+   from their more natural integer increment ordering, and so when the
+   decoding tables are built in the large loop below, the integer codes
+   are incremented backwards.
+
+   This routine assumes, but does not check, that all of the entries in
+   lens[] are in the range 0..MAXBITS.  The caller must assure this.
+   1..MAXBITS is interpreted as that code length.  zero means that that
+   symbol does not occur in this code.
+
+   The codes are sorted by computing a count of codes for each length,
+   creating from that a table of starting indices for each length in the
+   sorted table, and then entering the symbols in order in the sorted
+   table.  The sorted table is work[], with that space being provided by
+   the caller.
+
+   The length counts are used for other purposes as well, i.e. finding
+   the minimum and maximum length codes, determining if there are any
+   codes at all, checking for a valid set of lengths, and looking ahead
+   at length counts to determine sub-table sizes when building the
+   decoding tables.
+   */
+
+  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+  for (len = 0; len <= MAXBITS; len++) {
+    count[len] = 0;
+  }
+  for (sym = 0; sym < codes; sym++) {
+    count[lens[lens_index + sym]]++;
+  }
+
+  /* bound code lengths, force root to be within code lengths */
+  root = bits;
+  for (max = MAXBITS; max >= 1; max--) {
+    if (count[max] !== 0) { break; }
+  }
+  if (root > max) {
+    root = max;
+  }
+  if (max === 0) {                     /* no symbols to code at all */
+    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */
+    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;
+    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+
+    //table.op[opts.table_index] = 64;
+    //table.bits[opts.table_index] = 1;
+    //table.val[opts.table_index++] = 0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+    opts.bits = 1;
+    return 0;     /* no symbols, but wait for decoding to report error */
+  }
+  for (min = 1; min < max; min++) {
+    if (count[min] !== 0) { break; }
+  }
+  if (root < min) {
+    root = min;
+  }
+
+  /* check for an over-subscribed or incomplete set of lengths */
+  left = 1;
+  for (len = 1; len <= MAXBITS; len++) {
+    left <<= 1;
+    left -= count[len];
+    if (left < 0) {
+      return -1;
+    }        /* over-subscribed */
+  }
+  if (left > 0 && (type === CODES || max !== 1)) {
+    return -1;                      /* incomplete set */
+  }
+
+  /* generate offsets into symbol table for each length for sorting */
+  offs[1] = 0;
+  for (len = 1; len < MAXBITS; len++) {
+    offs[len + 1] = offs[len] + count[len];
+  }
+
+  /* sort symbols by length, by symbol order within each length */
+  for (sym = 0; sym < codes; sym++) {
+    if (lens[lens_index + sym] !== 0) {
+      work[offs[lens[lens_index + sym]]++] = sym;
+    }
+  }
+
+  /*
+   Create and fill in decoding tables.  In this loop, the table being
+   filled is at next and has curr index bits.  The code being used is huff
+   with length len.  That code is converted to an index by dropping drop
+   bits off of the bottom.  For codes where len is less than drop + curr,
+   those top drop + curr - len bits are incremented through all values to
+   fill the table with replicated entries.
+
+   root is the number of index bits for the root table.  When len exceeds
+   root, sub-tables are created pointed to by the root entry with an index
+   of the low root bits of huff.  This is saved in low to check for when a
+   new sub-table should be started.  drop is zero when the root table is
+   being filled, and drop is root when sub-tables are being filled.
+
+   When a new sub-table is needed, it is necessary to look ahead in the
+   code lengths to determine what size sub-table is needed.  The length
+   counts are used for this, and so count[] is decremented as codes are
+   entered in the tables.
+
+   used keeps track of how many table entries have been allocated from the
+   provided *table space.  It is checked for LENS and DIST tables against
+   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+   the initial root table size constants.  See the comments in inftrees.h
+   for more information.
+
+   sym increments through all symbols, and the loop terminates when
+   all codes of length max, i.e. all codes, have been processed.  This
+   routine permits incomplete codes, so another loop after this one fills
+   in the rest of the decoding tables with invalid code markers.
+   */
+
+  /* set up for code type */
+  // poor man optimization - use if-else instead of switch,
+  // to avoid deopts in old v8
+  if (type === CODES) {
+    base = extra = work;    /* dummy value--not used */
+    end = 19;
+
+  } else if (type === LENS) {
+    base = lbase;
+    base_index -= 257;
+    extra = lext;
+    extra_index -= 257;
+    end = 256;
+
+  } else {                    /* DISTS */
+    base = dbase;
+    extra = dext;
+    end = -1;
+  }
+
+  /* initialize opts for loop */
+  huff = 0;                   /* starting code */
+  sym = 0;                    /* starting code symbol */
+  len = min;                  /* starting code length */
+  next = table_index;              /* current table to fill in */
+  curr = root;                /* current table index bits */
+  drop = 0;                   /* current bits to drop from code for index */
+  low = -1;                   /* trigger new sub-table when len > root */
+  used = 1 << root;          /* use root table entries */
+  mask = used - 1;            /* mask for comparing low */
+
+  /* check available table space */
+  if ((type === LENS && used > ENOUGH_LENS) ||
+    (type === DISTS && used > ENOUGH_DISTS)) {
+    return 1;
+  }
+
+  /* process all codes and make table entries */
+  for (;;) {
+    /* create table entry */
+    here_bits = len - drop;
+    if (work[sym] < end) {
+      here_op = 0;
+      here_val = work[sym];
+    }
+    else if (work[sym] > end) {
+      here_op = extra[extra_index + work[sym]];
+      here_val = base[base_index + work[sym]];
+    }
+    else {
+      here_op = 32 + 64;         /* end of block */
+      here_val = 0;
+    }
+
+    /* replicate for those indices with low len bits equal to huff */
+    incr = 1 << (len - drop);
+    fill = 1 << curr;
+    min = fill;                 /* save offset to next table */
+    do {
+      fill -= incr;
+      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
+    } while (fill !== 0);
+
+    /* backwards increment the len-bit code huff */
+    incr = 1 << (len - 1);
+    while (huff & incr) {
+      incr >>= 1;
+    }
+    if (incr !== 0) {
+      huff &= incr - 1;
+      huff += incr;
+    } else {
+      huff = 0;
+    }
+
+    /* go to next symbol, update count, len */
+    sym++;
+    if (--count[len] === 0) {
+      if (len === max) { break; }
+      len = lens[lens_index + work[sym]];
+    }
+
+    /* create new sub-table if needed */
+    if (len > root && (huff & mask) !== low) {
+      /* if first time, transition to sub-tables */
+      if (drop === 0) {
+        drop = root;
+      }
+
+      /* increment past last table */
+      next += min;            /* here min is 1 << curr */
+
+      /* determine length of next table */
+      curr = len - drop;
+      left = 1 << curr;
+      while (curr + drop < max) {
+        left -= count[curr + drop];
+        if (left <= 0) { break; }
+        curr++;
+        left <<= 1;
+      }
+
+      /* check for enough space */
+      used += 1 << curr;
+      if ((type === LENS && used > ENOUGH_LENS) ||
+        (type === DISTS && used > ENOUGH_DISTS)) {
+        return 1;
+      }
+
+      /* point entry in root table to sub-table */
+      low = huff & mask;
+      /*table.op[low] = curr;
+      table.bits[low] = root;
+      table.val[low] = next - opts.table_index;*/
+      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
+    }
+  }
+
+  /* fill in remaining table entry if code is incomplete (guaranteed to have
+   at most one remaining entry, since if the code is incomplete, the
+   maximum code length that was allowed to get this far is one bit) */
+  if (huff !== 0) {
+    //table.op[next + huff] = 64;            /* invalid code marker */
+    //table.bits[next + huff] = len - drop;
+    //table.val[next + huff] = 0;
+    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
+  }
+
+  /* set return parameters */
+  //opts.table_index += used;
+  opts.bits = root;
+  return 0;
+};
+
+},{"../utils/common":62}],72:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+  2:      'need dictionary',     /* Z_NEED_DICT       2  */
+  1:      'stream end',          /* Z_STREAM_END      1  */
+  0:      '',                    /* Z_OK              0  */
+  '-1':   'file error',          /* Z_ERRNO         (-1) */
+  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */
+  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */
+  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */
+  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */
+  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */
+};
+
+},{}],73:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+//var Z_FILTERED          = 1;
+//var Z_HUFFMAN_ONLY      = 2;
+//var Z_RLE               = 3;
+var Z_FIXED               = 4;
+//var Z_DEFAULT_STRATEGY  = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+var Z_BINARY              = 0;
+var Z_TEXT                = 1;
+//var Z_ASCII             = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+/*============================================================================*/
+
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+// From zutil.h
+
+var STORED_BLOCK = 0;
+var STATIC_TREES = 1;
+var DYN_TREES    = 2;
+/* The three kinds of block type */
+
+var MIN_MATCH    = 3;
+var MAX_MATCH    = 258;
+/* The minimum and maximum match lengths */
+
+// From deflate.h
+/* ===========================================================================
+ * Internal compression state.
+ */
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+
+var D_CODES       = 30;
+/* number of distance codes */
+
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+
+var MAX_BITS      = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var Buf_size      = 16;
+/* size of bit buffer in bi_buf */
+
+
+/* ===========================================================================
+ * Constants
+ */
+
+var MAX_BL_BITS = 7;
+/* Bit length codes must not exceed MAX_BL_BITS bits */
+
+var END_BLOCK   = 256;
+/* end of block literal code */
+
+var REP_3_6     = 16;
+/* repeat previous bit length 3-6 times (2 bits of repeat count) */
+
+var REPZ_3_10   = 17;
+/* repeat a zero length 3-10 times  (3 bits of repeat count) */
+
+var REPZ_11_138 = 18;
+/* repeat a zero length 11-138 times  (7 bits of repeat count) */
+
+/* eslint-disable comma-spacing,array-bracket-spacing */
+var extra_lbits =   /* extra bits for each length code */
+  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
+
+var extra_dbits =   /* extra bits for each distance code */
+  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
+
+var extra_blbits =  /* extra bits for each bit length code */
+  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
+
+var bl_order =
+  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
+/* eslint-enable comma-spacing,array-bracket-spacing */
+
+/* The lengths of the bit length codes are sent in order of decreasing
+ * probability, to avoid transmitting the lengths for unused bit length codes.
+ */
+
+/* ===========================================================================
+ * Local data. These are initialized only once.
+ */
+
+// We pre-fill arrays with 0 to avoid uninitialized gaps
+
+var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
+
+// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1
+var static_ltree  = new Array((L_CODES + 2) * 2);
+zero(static_ltree);
+/* The static literal tree. Since the bit lengths are imposed, there is no
+ * need for the L_CODES extra codes used during heap construction. However
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
+ * below).
+ */
+
+var static_dtree  = new Array(D_CODES * 2);
+zero(static_dtree);
+/* The static distance tree. (Actually a trivial tree since all codes use
+ * 5 bits.)
+ */
+
+var _dist_code    = new Array(DIST_CODE_LEN);
+zero(_dist_code);
+/* Distance codes. The first 256 values correspond to the distances
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
+ * the 15 bit distances.
+ */
+
+var _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);
+zero(_length_code);
+/* length code for each normalized match length (0 == MIN_MATCH) */
+
+var base_length   = new Array(LENGTH_CODES);
+zero(base_length);
+/* First normalized length for each code (0 = MIN_MATCH) */
+
+var base_dist     = new Array(D_CODES);
+zero(base_dist);
+/* First normalized distance for each code (0 = distance of 1) */
+
+
+function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
+
+  this.static_tree  = static_tree;  /* static tree or NULL */
+  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */
+  this.extra_base   = extra_base;   /* base index for extra_bits */
+  this.elems        = elems;        /* max number of elements in the tree */
+  this.max_length   = max_length;   /* max bit length for the codes */
+
+  // show if `static_tree` has data or dummy - needed for monomorphic objects
+  this.has_stree    = static_tree && static_tree.length;
+}
+
+
+var static_l_desc;
+var static_d_desc;
+var static_bl_desc;
+
+
+function TreeDesc(dyn_tree, stat_desc) {
+  this.dyn_tree = dyn_tree;     /* the dynamic tree */
+  this.max_code = 0;            /* largest code with non zero frequency */
+  this.stat_desc = stat_desc;   /* the corresponding static tree */
+}
+
+
+
+function d_code(dist) {
+  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
+}
+
+
+/* ===========================================================================
+ * Output a short LSB first on the stream.
+ * IN assertion: there is enough room in pendingBuf.
+ */
+function put_short(s, w) {
+//    put_byte(s, (uch)((w) & 0xff));
+//    put_byte(s, (uch)((ush)(w) >> 8));
+  s.pending_buf[s.pending++] = (w) & 0xff;
+  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
+}
+
+
+/* ===========================================================================
+ * Send a value on a given number of bits.
+ * IN assertion: length <= 16 and value fits in length bits.
+ */
+function send_bits(s, value, length) {
+  if (s.bi_valid > (Buf_size - length)) {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    put_short(s, s.bi_buf);
+    s.bi_buf = value >> (Buf_size - s.bi_valid);
+    s.bi_valid += length - Buf_size;
+  } else {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    s.bi_valid += length;
+  }
+}
+
+
+function send_code(s, c, tree) {
+  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
+}
+
+
+/* ===========================================================================
+ * Reverse the first len bits of a code, using straightforward code (a faster
+ * method would use a table)
+ * IN assertion: 1 <= len <= 15
+ */
+function bi_reverse(code, len) {
+  var res = 0;
+  do {
+    res |= code & 1;
+    code >>>= 1;
+    res <<= 1;
+  } while (--len > 0);
+  return res >>> 1;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer, keeping at most 7 bits in it.
+ */
+function bi_flush(s) {
+  if (s.bi_valid === 16) {
+    put_short(s, s.bi_buf);
+    s.bi_buf = 0;
+    s.bi_valid = 0;
+
+  } else if (s.bi_valid >= 8) {
+    s.pending_buf[s.pending++] = s.bi_buf & 0xff;
+    s.bi_buf >>= 8;
+    s.bi_valid -= 8;
+  }
+}
+
+
+/* ===========================================================================
+ * Compute the optimal bit lengths for a tree and update the total bit length
+ * for the current block.
+ * IN assertion: the fields freq and dad are set, heap[heap_max] and
+ *    above are the tree nodes sorted by increasing frequency.
+ * OUT assertions: the field len is set to the optimal bit length, the
+ *     array bl_count contains the frequencies for each bit length.
+ *     The length opt_len is updated; static_len is also updated if stree is
+ *     not null.
+ */
+function gen_bitlen(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc;    /* the tree descriptor */
+{
+  var tree            = desc.dyn_tree;
+  var max_code        = desc.max_code;
+  var stree           = desc.stat_desc.static_tree;
+  var has_stree       = desc.stat_desc.has_stree;
+  var extra           = desc.stat_desc.extra_bits;
+  var base            = desc.stat_desc.extra_base;
+  var max_length      = desc.stat_desc.max_length;
+  var h;              /* heap index */
+  var n, m;           /* iterate over the tree elements */
+  var bits;           /* bit length */
+  var xbits;          /* extra bits */
+  var f;              /* frequency */
+  var overflow = 0;   /* number of elements with bit length too large */
+
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    s.bl_count[bits] = 0;
+  }
+
+  /* In a first pass, compute the optimal bit lengths (which may
+   * overflow in the case of the bit length tree).
+   */
+  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
+
+  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
+    n = s.heap[h];
+    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
+    if (bits > max_length) {
+      bits = max_length;
+      overflow++;
+    }
+    tree[n * 2 + 1]/*.Len*/ = bits;
+    /* We overwrite tree[n].Dad which is no longer needed */
+
+    if (n > max_code) { continue; } /* not a leaf node */
+
+    s.bl_count[bits]++;
+    xbits = 0;
+    if (n >= base) {
+      xbits = extra[n - base];
+    }
+    f = tree[n * 2]/*.Freq*/;
+    s.opt_len += f * (bits + xbits);
+    if (has_stree) {
+      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
+    }
+  }
+  if (overflow === 0) { return; }
+
+  // Trace((stderr,"\nbit length overflow\n"));
+  /* This happens for example on obj2 and pic of the Calgary corpus */
+
+  /* Find the first bit length which could increase: */
+  do {
+    bits = max_length - 1;
+    while (s.bl_count[bits] === 0) { bits--; }
+    s.bl_count[bits]--;      /* move one leaf down the tree */
+    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
+    s.bl_count[max_length]--;
+    /* The brother of the overflow item also moves one step up,
+     * but this does not affect bl_count[max_length]
+     */
+    overflow -= 2;
+  } while (overflow > 0);
+
+  /* Now recompute all bit lengths, scanning in increasing frequency.
+   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
+   * lengths instead of fixing only the wrong ones. This idea is taken
+   * from 'ar' written by Haruhiko Okumura.)
+   */
+  for (bits = max_length; bits !== 0; bits--) {
+    n = s.bl_count[bits];
+    while (n !== 0) {
+      m = s.heap[--h];
+      if (m > max_code) { continue; }
+      if (tree[m * 2 + 1]/*.Len*/ !== bits) {
+        // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
+        tree[m * 2 + 1]/*.Len*/ = bits;
+      }
+      n--;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Generate the codes for a given tree and bit counts (which need not be
+ * optimal).
+ * IN assertion: the array bl_count contains the bit length statistics for
+ * the given tree and the field len is set for all tree elements.
+ * OUT assertion: the field code is set for all tree elements of non
+ *     zero code length.
+ */
+function gen_codes(tree, max_code, bl_count)
+//    ct_data *tree;             /* the tree to decorate */
+//    int max_code;              /* largest code with non zero frequency */
+//    ushf *bl_count;            /* number of codes at each bit length */
+{
+  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
+  var code = 0;              /* running code value */
+  var bits;                  /* bit index */
+  var n;                     /* code index */
+
+  /* The distribution counts are first used to generate the code values
+   * without bit reversal.
+   */
+  for (bits = 1; bits <= MAX_BITS; bits++) {
+    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
+  }
+  /* Check that the bit counts in bl_count are consistent. The last code
+   * must be all ones.
+   */
+  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+  //        "inconsistent bit counts");
+  //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
+
+  for (n = 0;  n <= max_code; n++) {
+    var len = tree[n * 2 + 1]/*.Len*/;
+    if (len === 0) { continue; }
+    /* Now reverse the bits */
+    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
+
+    //Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
+    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+  }
+}
+
+
+/* ===========================================================================
+ * Initialize the various 'constant' tables.
+ */
+function tr_static_init() {
+  var n;        /* iterates over tree elements */
+  var bits;     /* bit counter */
+  var length;   /* length value */
+  var code;     /* code value */
+  var dist;     /* distance index */
+  var bl_count = new Array(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  // do check in _tr_init()
+  //if (static_init_done) return;
+
+  /* For some embedded targets, global variables are not initialized: */
+/*#ifdef NO_INIT_GLOBAL_POINTERS
+  static_l_desc.static_tree = static_ltree;
+  static_l_desc.extra_bits = extra_lbits;
+  static_d_desc.static_tree = static_dtree;
+  static_d_desc.extra_bits = extra_dbits;
+  static_bl_desc.extra_bits = extra_blbits;
+#endif*/
+
+  /* Initialize the mapping length (0..255) -> length code (0..28) */
+  length = 0;
+  for (code = 0; code < LENGTH_CODES - 1; code++) {
+    base_length[code] = length;
+    for (n = 0; n < (1 << extra_lbits[code]); n++) {
+      _length_code[length++] = code;
+    }
+  }
+  //Assert (length == 256, "tr_static_init: length != 256");
+  /* Note that the length 255 (match length 258) can be represented
+   * in two different ways: code 284 + 5 bits or code 285, so we
+   * overwrite length_code[255] to use the best encoding:
+   */
+  _length_code[length - 1] = code;
+
+  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
+  dist = 0;
+  for (code = 0; code < 16; code++) {
+    base_dist[code] = dist;
+    for (n = 0; n < (1 << extra_dbits[code]); n++) {
+      _dist_code[dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: dist != 256");
+  dist >>= 7; /* from now on, all distances are divided by 128 */
+  for (; code < D_CODES; code++) {
+    base_dist[code] = dist << 7;
+    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
+      _dist_code[256 + dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
+
+  /* Construct the codes of the static literal tree */
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    bl_count[bits] = 0;
+  }
+
+  n = 0;
+  while (n <= 143) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  while (n <= 255) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 9;
+    n++;
+    bl_count[9]++;
+  }
+  while (n <= 279) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 7;
+    n++;
+    bl_count[7]++;
+  }
+  while (n <= 287) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  /* Codes 286 and 287 do not exist, but we must include them in the
+   * tree construction to get a canonical Huffman tree (longest code
+   * all ones)
+   */
+  gen_codes(static_ltree, L_CODES + 1, bl_count);
+
+  /* The static distance tree is trivial: */
+  for (n = 0; n < D_CODES; n++) {
+    static_dtree[n * 2 + 1]/*.Len*/ = 5;
+    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
+  }
+
+  // Now data ready and we can init static trees
+  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
+  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);
+  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);
+
+  //static_init_done = true;
+}
+
+
+/* ===========================================================================
+ * Initialize a new block.
+ */
+function init_block(s) {
+  var n; /* iterates over tree elements */
+
+  /* Initialize the trees. */
+  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
+
+  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
+  s.opt_len = s.static_len = 0;
+  s.last_lit = s.matches = 0;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer and align the output on a byte boundary
+ */
+function bi_windup(s)
+{
+  if (s.bi_valid > 8) {
+    put_short(s, s.bi_buf);
+  } else if (s.bi_valid > 0) {
+    //put_byte(s, (Byte)s->bi_buf);
+    s.pending_buf[s.pending++] = s.bi_buf;
+  }
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+}
+
+/* ===========================================================================
+ * Copy a stored block, storing first the length and its
+ * one's complement if requested.
+ */
+function copy_block(s, buf, len, header)
+//DeflateState *s;
+//charf    *buf;    /* the input data */
+//unsigned len;     /* its length */
+//int      header;  /* true if block header must be written */
+{
+  bi_windup(s);        /* align on byte boundary */
+
+  if (header) {
+    put_short(s, len);
+    put_short(s, ~len);
+  }
+//  while (len--) {
+//    put_byte(s, *buf++);
+//  }
+  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
+  s.pending += len;
+}
+
+/* ===========================================================================
+ * Compares to subtrees, using the tree depth as tie breaker when
+ * the subtrees have equal frequency. This minimizes the worst case length.
+ */
+function smaller(tree, n, m, depth) {
+  var _n2 = n * 2;
+  var _m2 = m * 2;
+  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
+         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
+}
+
+/* ===========================================================================
+ * Restore the heap property by moving down the tree starting at node k,
+ * exchanging a node with the smallest of its two sons if necessary, stopping
+ * when the heap property is re-established (each father smaller than its
+ * two sons).
+ */
+function pqdownheap(s, tree, k)
+//    deflate_state *s;
+//    ct_data *tree;  /* the tree to restore */
+//    int k;               /* node to move down */
+{
+  var v = s.heap[k];
+  var j = k << 1;  /* left son of k */
+  while (j <= s.heap_len) {
+    /* Set j to the smallest of the two sons: */
+    if (j < s.heap_len &&
+      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
+      j++;
+    }
+    /* Exit if v is smaller than both sons */
+    if (smaller(tree, v, s.heap[j], s.depth)) { break; }
+
+    /* Exchange v with the smallest son */
+    s.heap[k] = s.heap[j];
+    k = j;
+
+    /* And continue down the tree, setting j to the left son of k */
+    j <<= 1;
+  }
+  s.heap[k] = v;
+}
+
+
+// inlined manually
+// var SMALLEST = 1;
+
+/* ===========================================================================
+ * Send the block data compressed using the given Huffman trees
+ */
+function compress_block(s, ltree, dtree)
+//    deflate_state *s;
+//    const ct_data *ltree; /* literal tree */
+//    const ct_data *dtree; /* distance tree */
+{
+  var dist;           /* distance of matched string */
+  var lc;             /* match length or unmatched char (if dist == 0) */
+  var lx = 0;         /* running index in l_buf */
+  var code;           /* the code to send */
+  var extra;          /* number of extra bits to send */
+
+  if (s.last_lit !== 0) {
+    do {
+      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
+      lc = s.pending_buf[s.l_buf + lx];
+      lx++;
+
+      if (dist === 0) {
+        send_code(s, lc, ltree); /* send a literal byte */
+        //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+      } else {
+        /* Here, lc is the match length - MIN_MATCH */
+        code = _length_code[lc];
+        send_code(s, code + LITERALS + 1, ltree); /* send the length code */
+        extra = extra_lbits[code];
+        if (extra !== 0) {
+          lc -= base_length[code];
+          send_bits(s, lc, extra);       /* send the extra length bits */
+        }
+        dist--; /* dist is now the match distance - 1 */
+        code = d_code(dist);
+        //Assert (code < D_CODES, "bad d_code");
+
+        send_code(s, code, dtree);       /* send the distance code */
+        extra = extra_dbits[code];
+        if (extra !== 0) {
+          dist -= base_dist[code];
+          send_bits(s, dist, extra);   /* send the extra distance bits */
+        }
+      } /* literal or match pair ? */
+
+      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+      //       "pendingBuf overflow");
+
+    } while (lx < s.last_lit);
+  }
+
+  send_code(s, END_BLOCK, ltree);
+}
+
+
+/* ===========================================================================
+ * Construct one Huffman tree and assigns the code bit strings and lengths.
+ * Update the total bit length for the current block.
+ * IN assertion: the field freq is set for all tree elements.
+ * OUT assertions: the fields len and code are set to the optimal bit length
+ *     and corresponding code. The length opt_len is updated; static_len is
+ *     also updated if stree is not null. The field max_code is set.
+ */
+function build_tree(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc; /* the tree descriptor */
+{
+  var tree     = desc.dyn_tree;
+  var stree    = desc.stat_desc.static_tree;
+  var has_stree = desc.stat_desc.has_stree;
+  var elems    = desc.stat_desc.elems;
+  var n, m;          /* iterate over heap elements */
+  var max_code = -1; /* largest code with non zero frequency */
+  var node;          /* new node being created */
+
+  /* Construct the initial heap, with least frequent element in
+   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+   * heap[0] is not used.
+   */
+  s.heap_len = 0;
+  s.heap_max = HEAP_SIZE;
+
+  for (n = 0; n < elems; n++) {
+    if (tree[n * 2]/*.Freq*/ !== 0) {
+      s.heap[++s.heap_len] = max_code = n;
+      s.depth[n] = 0;
+
+    } else {
+      tree[n * 2 + 1]/*.Len*/ = 0;
+    }
+  }
+
+  /* The pkzip format requires that at least one distance code exists,
+   * and that at least one bit should be sent even if there is only one
+   * possible code. So to avoid special checks later on we force at least
+   * two codes of non zero frequency.
+   */
+  while (s.heap_len < 2) {
+    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
+    tree[node * 2]/*.Freq*/ = 1;
+    s.depth[node] = 0;
+    s.opt_len--;
+
+    if (has_stree) {
+      s.static_len -= stree[node * 2 + 1]/*.Len*/;
+    }
+    /* node is 0 or 1 so it does not have extra bits */
+  }
+  desc.max_code = max_code;
+
+  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+   * establish sub-heaps of increasing lengths:
+   */
+  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
+
+  /* Construct the Huffman tree by repeatedly combining the least two
+   * frequent nodes.
+   */
+  node = elems;              /* next internal node of the tree */
+  do {
+    //pqremove(s, tree, n);  /* n = node of least frequency */
+    /*** pqremove ***/
+    n = s.heap[1/*SMALLEST*/];
+    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+    /***/
+
+    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
+
+    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
+    s.heap[--s.heap_max] = m;
+
+    /* Create a new node father of n and m */
+    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
+    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
+    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
+
+    /* and insert the new node in the heap */
+    s.heap[1/*SMALLEST*/] = node++;
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+
+  } while (s.heap_len >= 2);
+
+  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
+
+  /* At this point, the fields freq and dad are set. We can now
+   * generate the bit lengths.
+   */
+  gen_bitlen(s, desc);
+
+  /* The field len is now set, we can generate the bit codes */
+  gen_codes(tree, max_code, s.bl_count);
+}
+
+
+/* ===========================================================================
+ * Scan a literal or distance tree to determine the frequencies of the codes
+ * in the bit length tree.
+ */
+function scan_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree;   /* the tree to be scanned */
+//    int max_code;    /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      s.bl_tree[curlen * 2]/*.Freq*/ += count;
+
+    } else if (curlen !== 0) {
+
+      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
+      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
+
+    } else if (count <= 10) {
+      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
+
+    } else {
+      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
+    }
+
+    count = 0;
+    prevlen = curlen;
+
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Send a literal or distance tree in compressed form, using the codes in
+ * bl_tree.
+ */
+function send_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree; /* the tree to be scanned */
+//    int max_code;       /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  /* tree[max_code+1].Len = -1; */  /* guard already set */
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
+
+    } else if (curlen !== 0) {
+      if (curlen !== prevlen) {
+        send_code(s, curlen, s.bl_tree);
+        count--;
+      }
+      //Assert(count >= 3 && count <= 6, " 3_6?");
+      send_code(s, REP_3_6, s.bl_tree);
+      send_bits(s, count - 3, 2);
+
+    } else if (count <= 10) {
+      send_code(s, REPZ_3_10, s.bl_tree);
+      send_bits(s, count - 3, 3);
+
+    } else {
+      send_code(s, REPZ_11_138, s.bl_tree);
+      send_bits(s, count - 11, 7);
+    }
+
+    count = 0;
+    prevlen = curlen;
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Construct the Huffman tree for the bit lengths and return the index in
+ * bl_order of the last bit length code to send.
+ */
+function build_bl_tree(s) {
+  var max_blindex;  /* index of last bit length code of non zero freq */
+
+  /* Determine the bit length frequencies for literal and distance trees */
+  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
+  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
+
+  /* Build the bit length tree: */
+  build_tree(s, s.bl_desc);
+  /* opt_len now includes the length of the tree representations, except
+   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+   */
+
+  /* Determine the number of bit length codes to send. The pkzip format
+   * requires that at least 4 bit length codes be sent. (appnote.txt says
+   * 3 but the actual value used is 4.)
+   */
+  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
+    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
+      break;
+    }
+  }
+  /* Update opt_len to include the bit length tree and counts */
+  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
+  //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
+  //        s->opt_len, s->static_len));
+
+  return max_blindex;
+}
+
+
+/* ===========================================================================
+ * Send the header for a block using dynamic Huffman trees: the counts, the
+ * lengths of the bit length codes, the literal tree and the distance tree.
+ * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
+ */
+function send_all_trees(s, lcodes, dcodes, blcodes)
+//    deflate_state *s;
+//    int lcodes, dcodes, blcodes; /* number of codes for each tree */
+{
+  var rank;                    /* index in bl_order */
+
+  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
+  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
+  //        "too many codes");
+  //Tracev((stderr, "\nbl counts: "));
+  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
+  send_bits(s, dcodes - 1,   5);
+  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */
+  for (rank = 0; rank < blcodes; rank++) {
+    //Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
+    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
+  }
+  //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
+  //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
+  //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
+}
+
+
+/* ===========================================================================
+ * Check if the data type is TEXT or BINARY, using the following algorithm:
+ * - TEXT if the two conditions below are satisfied:
+ *    a) There are no non-portable control characters belonging to the
+ *       "black list" (0..6, 14..25, 28..31).
+ *    b) There is at least one printable character belonging to the
+ *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
+ * - BINARY otherwise.
+ * - The following partially-portable control characters form a
+ *   "gray list" that is ignored in this detection algorithm:
+ *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
+ * IN assertion: the fields Freq of dyn_ltree are set.
+ */
+function detect_data_type(s) {
+  /* black_mask is the bit mask of black-listed bytes
+   * set bits 0..6, 14..25, and 28..31
+   * 0xf3ffc07f = binary 11110011111111111100000001111111
+   */
+  var black_mask = 0xf3ffc07f;
+  var n;
+
+  /* Check for non-textual ("black-listed") bytes. */
+  for (n = 0; n <= 31; n++, black_mask >>>= 1) {
+    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
+      return Z_BINARY;
+    }
+  }
+
+  /* Check for textual ("white-listed") bytes. */
+  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
+      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
+    return Z_TEXT;
+  }
+  for (n = 32; n < LITERALS; n++) {
+    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
+      return Z_TEXT;
+    }
+  }
+
+  /* There are no "black-listed" or "white-listed" bytes:
+   * this stream either is empty or has tolerated ("gray-listed") bytes only.
+   */
+  return Z_BINARY;
+}
+
+
+var static_init_done = false;
+
+/* ===========================================================================
+ * Initialize the tree data structures for a new zlib stream.
+ */
+function _tr_init(s)
+{
+
+  if (!static_init_done) {
+    tr_static_init();
+    static_init_done = true;
+  }
+
+  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);
+  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);
+  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
+
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+
+  /* Initialize the first block of the first file: */
+  init_block(s);
+}
+
+
+/* ===========================================================================
+ * Send a stored block
+ */
+function _tr_stored_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */
+  copy_block(s, buf, stored_len, true); /* with header */
+}
+
+
+/* ===========================================================================
+ * Send one empty static block to give enough lookahead for inflate.
+ * This takes 10 bits, of which 7 may remain in the bit buffer.
+ */
+function _tr_align(s) {
+  send_bits(s, STATIC_TREES << 1, 3);
+  send_code(s, END_BLOCK, static_ltree);
+  bi_flush(s);
+}
+
+
+/* ===========================================================================
+ * Determine the best encoding for the current block: dynamic trees, static
+ * trees or store, and output the encoded block to the zip file.
+ */
+function _tr_flush_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block, or NULL if too old */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */
+  var max_blindex = 0;        /* index of last bit length code of non zero freq */
+
+  /* Build the Huffman trees unless a stored block is forced */
+  if (s.level > 0) {
+
+    /* Check if the file is binary or text */
+    if (s.strm.data_type === Z_UNKNOWN) {
+      s.strm.data_type = detect_data_type(s);
+    }
+
+    /* Construct the literal and distance trees */
+    build_tree(s, s.l_desc);
+    // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+
+    build_tree(s, s.d_desc);
+    // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+    /* At this point, opt_len and static_len are the total bit lengths of
+     * the compressed block data, excluding the tree representations.
+     */
+
+    /* Build the bit length tree for the above two trees, and get the index
+     * in bl_order of the last bit length code to send.
+     */
+    max_blindex = build_bl_tree(s);
+
+    /* Determine the best encoding. Compute the block lengths in bytes. */
+    opt_lenb = (s.opt_len + 3 + 7) >>> 3;
+    static_lenb = (s.static_len + 3 + 7) >>> 3;
+
+    // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+    //        s->last_lit));
+
+    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
+
+  } else {
+    // Assert(buf != (char*)0, "lost buf");
+    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
+  }
+
+  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
+    /* 4: two words for the lengths */
+
+    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
+     * Otherwise we can't have processed more than WSIZE input bytes since
+     * the last block flush, because compression would have been
+     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
+     * transform a block into a stored block.
+     */
+    _tr_stored_block(s, buf, stored_len, last);
+
+  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
+
+    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
+    compress_block(s, static_ltree, static_dtree);
+
+  } else {
+    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
+    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
+    compress_block(s, s.dyn_ltree, s.dyn_dtree);
+  }
+  // Assert (s->compressed_len == s->bits_sent, "bad compressed size");
+  /* The above check is made mod 2^32, for files larger than 512 MB
+   * and uLong implemented on 32 bits.
+   */
+  init_block(s);
+
+  if (last) {
+    bi_windup(s);
+  }
+  // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
+  //       s->compressed_len-7*last));
+}
+
+/* ===========================================================================
+ * Save the match info and tally the frequency counts. Return true if
+ * the current block must be flushed.
+ */
+function _tr_tally(s, dist, lc)
+//    deflate_state *s;
+//    unsigned dist;  /* distance of matched string */
+//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
+{
+  //var out_length, in_length, dcode;
+
+  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;
+  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
+
+  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
+  s.last_lit++;
+
+  if (dist === 0) {
+    /* lc is the unmatched char */
+    s.dyn_ltree[lc * 2]/*.Freq*/++;
+  } else {
+    s.matches++;
+    /* Here, lc is the match length - MIN_MATCH */
+    dist--;             /* dist = match distance - 1 */
+    //Assert((ush)dist < (ush)MAX_DIST(s) &&
+    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
+    //       (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
+
+    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
+    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
+  }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+
+//#ifdef TRUNCATE_BLOCK
+//  /* Try to guess if it is profitable to stop the current block here */
+//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
+//    /* Compute an upper bound for the compressed length */
+//    out_length = s.last_lit*8;
+//    in_length = s.strstart - s.block_start;
+//
+//    for (dcode = 0; dcode < D_CODES; dcode++) {
+//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
+//    }
+//    out_length >>>= 3;
+//    //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+//    //       s->last_lit, in_length, out_length,
+//    //       100L - out_length*100L/in_length));
+//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
+//      return true;
+//    }
+//  }
+//#endif
+
+  return (s.last_lit === s.lit_bufsize - 1);
+  /* We avoid equality with lit_bufsize because of wraparound at 64K
+   * on 16 bit machines and because stored blocks are restricted to
+   * 64K-1 bytes.
+   */
+}
+
+exports._tr_init  = _tr_init;
+exports._tr_stored_block = _tr_stored_block;
+exports._tr_flush_block  = _tr_flush_block;
+exports._tr_tally = _tr_tally;
+exports._tr_align = _tr_align;
+
+},{"../utils/common":62}],74:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function ZStream() {
+  /* next input byte */
+  this.input = null; // JS specific, because we have no pointers
+  this.next_in = 0;
+  /* number of bytes available at input */
+  this.avail_in = 0;
+  /* total number of input bytes read so far */
+  this.total_in = 0;
+  /* next output byte should be put there */
+  this.output = null; // JS specific, because we have no pointers
+  this.next_out = 0;
+  /* remaining free space at output */
+  this.avail_out = 0;
+  /* total number of bytes output so far */
+  this.total_out = 0;
+  /* last error message, NULL if no error */
+  this.msg = ''/*Z_NULL*/;
+  /* not visible by applications */
+  this.state = null;
+  /* best guess about the data type: binary or text */
+  this.data_type = 2/*Z_UNKNOWN*/;
+  /* adler32 value of the uncompressed data */
+  this.adler = 0;
+}
+
+module.exports = ZStream;
+
+},{}]},{},[10])(10)
+});
\ No newline at end of file
diff --git a/apidocs/3.0.0/jquery/jszip/dist/jszip.min.js b/apidocs/3.0.0/jquery/jszip/dist/jszip.min.js
new file mode 100644
index 0000000..b918873
--- /dev/null
+++ b/apidocs/3.0.0/jquery/jszip/dist/jszip.min.js
@@ -0,0 +1,15 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./utils"),e=a("./support"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";c.encode=function(a){for(var b,c,e,g,h,i,j,k=[],l=0,m=a.length,n=m,o="string"!==d.getTypeOf(a);l<a.length;)n=m-l,o?(b=a[l++],c=l<m?a[l++]:0,e=l<m?a[l++]:0):(b=a.charCodeAt(l++),c=l<m?a.charCodeAt(l++):0,e=l<m?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0,m="data:";if(a.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var n=3*a.length/4;if(a.charAt(a.length-1)===f.charAt(64)&&n--,a.charAt(a.length-2)===f.charAt(64)&&n--,n%1!==0)throw new Error("Invalid base64 input, bad content length.");var o;for(o=e.uint8array?new Uint8Array(0|n):new Array(0|n);k<a.length;)g=f.indexOf(a.charAt(k++)),h=f.indexOf(a.charAt(k++)),i=f.indexOf(a.charAt(k++)),j=f.indexOf(a.charAt(k++)),b=g<<2|h>>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,o[l++]=b,64!==i&&(o[l++]=c),64!==j&&(o[l++]=d);return o}},{"./support":30,"./utils":32}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b[g])];return a^-1}function f(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b.charCodeAt(g))];return a^-1}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":32}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=null;d="undefined"!=typeof Promise?Promise:a("lie"),b.exports={Promise:d}},{lie:58}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=null,this._pakoAction=a,this._pakoOptions=b,this.meta={}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\0",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,null===this._pako&&this._createPako(),this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var a=this;this._pako.onData=function(b){a.push({data:b,meta:a.meta})}},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\0",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\0\0\0\0"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\0\0\0\0"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=m(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=m(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var c=this.bytesWritten-a,d=n(this.dirRecords.length,c,a,this.zipComment,this.encodeFileName);this.push({data:d,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(a){this._sources.push(a);var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),a.on("error",function(a){b.error(a)}),this},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(a){var b=this._sources;if(!f.prototype.error.call(this,a))return!1;for(var c=0;c<b.length;c++)try{b[c].error(a)}catch(a){}return!0},d.prototype.lock=function(){f.prototype.lock.call(this);for(var a=this._sources,b=0;b<a.length;b++)a[b].lock()},b.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(a,b,c){"use strict";var d=a("../compressions"),e=a("./ZipFileWorker"),f=function(a,b){var c=a||b,e=d[c];if(!e)throw new Error(c+" is not a valid compression method !");return e};c.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(h){d.error(h)}return d}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(a,b,c){"use strict";function d(){if(!(this instanceof d))return new d;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var a=new d;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a}}d.prototype=a("./object"),d.prototype.loadAsync=a("./load"),d.support=a("./support"),d.defaults=a("./defaults"),d.version="3.1.5",d.loadAsync=function(a,b){return(new d).loadAsync(a,b)},d.external=a("./external"),b.exports=d},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(a,b,c){"use strict";function d(a){return new f.Promise(function(b,c){var d=a.decompressed.getContentWorker().pipe(new i);d.on("error",function(a){c(a)}).on("end",function(){d.streamInfo.crc32!==a.decompressed.crc32?c(new Error("Corrupted zip : CRC32 mismatch")):b()}).resume()})}var e=a("./utils"),f=a("./external"),g=a("./utf8"),e=a("./utils"),h=a("./zipEntries"),i=a("./stream/Crc32Probe"),j=a("./nodejsUtils");b.exports=function(a,b){var c=this;return b=e.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:g.utf8decode}),j.isNode&&j.isStream(a)?f.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):e.prepareContent("the loaded zip file",a,!0,b.optimizedBinaryString,b.base64).then(function(a){var c=new h(b);return c.load(a),c}).then(function(a){var c=[f.Promise.resolve(a)],e=a.files;if(b.checkCRC32)for(var g=0;g<e.length;g++)c.push(d(e[g]));return f.Promise.all(c)}).then(function(a){for(var d=a.shift(),e=d.files,f=0;f<e.length;f++){var g=e[f];c.file(g.fileNameStr,g.decompressed,{binary:!0,optimizedBinaryString:!0,date:g.date,dir:g.dir,comment:g.fileCommentStr.length?g.fileCommentStr:null,unixPermissions:g.unixPermissions,dosPermissions:g.dosPermissions,createFolders:b.createFolders})}return d.zipComment.length&&(c.comment=d.zipComment),c})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(a,b,c){"use strict";function d(a,b){f.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}var e=a("../utils"),f=a("../stream/GenericWorker");e.inherits(d,f),d.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},d.prototype.pause=function(){return!!f.prototype.pause.call(this)&&(this._stream.pause(),!0)},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},b.exports=d},{"../stream/GenericWorker":28,"../utils":32}],13:[function(a,b,c){"use strict";function d(a,b,c){e.call(this,b),this._helper=a;var d=this;a.on("data",function(a,b){d.push(a)||d._helper.pause(),c&&c(b)}).on("error",function(a){d.emit("error",a)}).on("end",function(){d.push(null)})}var e=a("readable-stream").Readable,f=a("../utils");f.inherits(d,e),d.prototype._read=function(){this._helper.resume()},b.exports=d},{"../utils":32,"readable-stream":16}],14:[function(a,b,c){"use strict";b.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(a,b){return new Buffer(a,b)},allocBuffer:function(a){return Buffer.alloc?Buffer.alloc(a):new Buffer(a)},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pause&&"function"==typeof a.resume}}},{}],15:[function(a,b,c){"use strict";function d(a){return"[object RegExp]"===Object.prototype.toString.call(a)}var e=a("./utf8"),f=a("./utils"),g=a("./stream/GenericWorker"),h=a("./stream/StreamHelper"),i=a("./defaults"),j=a("./compressedObject"),k=a("./zipObject"),l=a("./generate"),m=a("./nodejsUtils"),n=a("./nodejs/NodejsStreamInputAdapter"),o=function(a,b,c){var d,e=f.getTypeOf(b),h=f.extend(c||{},i);h.date=h.date||new Date,null!==h.compression&&(h.compression=h.compression.toUpperCase()),"string"==typeof h.unixPermissions&&(h.unixPermissions=parseInt(h.unixPermissions,8)),h.unixPermissions&&16384&h.unixPermissions&&(h.dir=!0),h.dosPermissions&&16&h.dosPermissions&&(h.dir=!0),h.dir&&(a=q(a)),h.createFolders&&(d=p(a))&&r.call(this,d,!0);var l="string"===e&&h.binary===!1&&h.base64===!1;c&&"undefined"!=typeof c.binary||(h.binary=!l);var o=b instanceof j&&0===b.uncompressedSize;(o||h.dir||!b||0===b.length)&&(h.base64=!1,h.binary=!0,b="",h.compression="STORE",e="string");var s=null;s=b instanceof j||b instanceof g?b:m.isNode&&m.isStream(b)?new n(a,b):f.prepareContent(a,b,h.binary,h.optimizedBinaryString,h.base64);var t=new k(a,s,h);this.files[a]=t},p=function(a){"/"===a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(a){var b,c={};try{if(c=f.extend(a||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:e.utf8encode}),c.type=c.type.toLowerCase(),c.compression=c.compression.toUpperCase(),"binarystring"===c.type&&(c.type="string"),!c.type)throw new Error("No output type specified.");f.checkSupport(c.type),"darwin"!==c.platform&&"freebsd"!==c.platform&&"linux"!==c.platform&&"sunos"!==c.platform||(c.platform="UNIX"),"win32"===c.platform&&(c.platform="DOS");var d=c.comment||this.comment||"";b=l.generateWorker(this,c,d)}catch(i){b=new g("error"),b.error(i)}return new h(b,c.type||"string",c.mimeType)},generateAsync:function(a,b){return this.generateInternalStream(a).accumulate(b)},generateNodeStream:function(a,b){return a=a||{},a.type||(a.type="nodebuffer"),this.generateInternalStream(a).toNodejsStream(b)}};b.exports=s},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(a,b,c){b.exports=a("stream")},{stream:void 0}],17:[function(a,b,c){"use strict";function d(a){e.call(this,a);for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],18:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":32}],19:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],21:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./ArrayReader":17}],22:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],24:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":32,"./GenericWorker":28}],25:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":32,"./GenericWorker":28}],27:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":32,"./GenericWorker":28}],28:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},b.exports=d},{}],29:[function(a,b,c){"use strict";function d(a,b,c){switch(a){case"blob":return h.newBlob(h.transformTo("arraybuffer",b),c);case"base64":return k.encode(b);default:return h.transformTo(a,b)}}function e(a,b){var c,d=0,e=null,f=0;for(c=0;c<b.length;c++)f+=b[c].length;switch(a){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(e=new Uint8Array(f),c=0;c<b.length;c++)e.set(b[c],d),d+=b[c].length;return e;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+a+"'")}}function f(a,b){return new m.Promise(function(c,f){var g=[],h=a._internalType,i=a._outputType,j=a._mimeType;a.on("data",function(a,c){g.push(a),b&&b(c)}).on("error",function(a){g=[],f(a)}).on("end",function(){try{var a=d(i,e(h,g),j);c(a)}catch(b){f(b)}g=[]}).resume()})}function g(a,b,c){var d=b;switch(b){case"blob":case"arraybuffer":d="uint8array";break;case"base64":d="string"}try{this._internalType=d,this._outputType=b,this._mimeType=c,h.checkSupport(d),this._worker=a.pipe(new i(d)),a.lock()}catch(e){this._worker=new j("error"),this._worker.error(e)}}var h=a("../utils"),i=a("./ConvertWorker"),j=a("./GenericWorker"),k=a("../base64"),l=a("../support"),m=a("../external"),n=null;if(l.nodestream)try{n=a("../nodejs/NodejsStreamOutputAdapter")}catch(o){}g.prototype={accumulate:function(a){return f(this,a)},on:function(a,b){var c=this;return"data"===a?this._worker.on(a,function(a){b.call(c,a.data,a.meta)}):this._worker.on(a,function(){h.delay(b,arguments,c)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(a){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new n(this,{objectMode:"nodebuffer"!==this._outputType},a)}},b.exports=g},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(a,b,c){"use strict";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c.nodebuffer="undefined"!=typeof Buffer,c.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)c.blob=!1;else{var d=new ArrayBuffer(0);try{c.blob=0===new Blob([d],{type:"application/zip"}).size}catch(e){try{var f=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,g=new f;g.append(d),c.blob=0===g.getBlob("application/zip").size}catch(e){c.blob=!1}}}try{c.nodestream=!!a("readable-stream").Readable}catch(e){c.nodestream=!1}},{"readable-stream":16}],31:[function(a,b,c){"use strict";function d(){i.call(this,"utf-8 decode"),this.leftOver=null}function e(){i.call(this,"utf-8 encode")}for(var f=a("./utils"),g=a("./support"),h=a("./nodejsUtils"),i=a("./stream/GenericWorker"),j=new Array(256),k=0;k<256;k++)j[k]=k>=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;e<h;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=g.uint8array?new Uint8Array(i):new Array(i),f=0,e=0;f<i;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),c<128?b[f++]=c:c<2048?(b[f++]=192|c>>>6,b[f++]=128|63&c):c<65536?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;b<g;)if(d=a[b++],d<128)h[c++]=d;else if(e=j[d],e>4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&b<g;)d=d<<6|63&a[b++],e--;e>1?h[c++]=65533:d<65536?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBufferFrom(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function g(a){var b=65536,d=c.getTypeOf(a),e=!0;if("uint8array"===d?e=n.applyCanBeUsed.uint8array:"nodebuffer"===d&&(e=n.applyCanBeUsed.nodebuffer),e)for(;b>1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];
+return b}var i=a("./support"),j=a("./base64"),k=a("./nodejsUtils"),l=a("core-js/library/fn/set-immediate"),m=a("./external");c.newBlob=function(a,b){c.checkSupport("blob");try{return new Blob([a],{type:b})}catch(d){try{var e=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error("Bug : can't construct the Blob.")}}};var n={stringifyByChunk:function(a,b,c){var d=[],e=0,f=a.length;if(f<=c)return String.fromCharCode.apply(null,a);for(;e<f;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(a){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,k.allocBuffer(1)).length}catch(a){return!1}}()}};c.applyFromCharCode=g;var o={};o.string={string:e,array:function(a){return f(a,new Array(a.length))},arraybuffer:function(a){return o.string.uint8array(a).buffer},uint8array:function(a){return f(a,new Uint8Array(a.length))},nodebuffer:function(a){return f(a,k.allocBuffer(a.length))}},o.array={string:g,array:e,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(a)}},o.arraybuffer={string:function(a){return g(new Uint8Array(a))},array:function(a){return h(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:e,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(new Uint8Array(a))}},o.uint8array={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:e,nodebuffer:function(a){return k.newBufferFrom(a)}},o.nodebuffer={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return o.nodebuffer.uint8array(a).buffer},uint8array:function(a){return h(a,new Uint8Array(a.length))},nodebuffer:e},c.transformTo=function(a,b){if(b||(b=""),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=o[d][a](b);return e},c.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":i.nodebuffer&&k.isBuffer(a)?"nodebuffer":i.uint8array&&a instanceof Uint8Array?"uint8array":i.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},c.checkSupport=function(a){var b=i[a.toLowerCase()];if(!b)throw new Error(a+" is not supported by this platform")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)b=a.charCodeAt(c),d+="\\x"+(b<16?"0":"")+b.toString(16).toUpperCase();return d},c.delay=function(a,b,c){l(function(){a.apply(c||null,b||[])})},c.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&"undefined"==typeof c[b]&&(c[b]=arguments[a][b]);return c},c.prepareContent=function(a,b,e,f,g){var h=m.Promise.resolve(b).then(function(a){var b=i.blob&&(a instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a))!==-1);return b&&"undefined"!=typeof FileReader?new m.Promise(function(b,c){var d=new FileReader;d.onload=function(a){b(a.target.result)},d.onerror=function(a){c(a.target.error)},d.readAsArrayBuffer(a)}):a});return h.then(function(b){var h=c.getTypeOf(b);return h?("arraybuffer"===h?b=c.transformTo("uint8array",b):"string"===h&&(g?b=j.decode(b):e&&f!==!0&&(b=d(b))),b):m.Promise.reject(new Error("Can't read the data of '"+a+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(a,b,c){"use strict";function d(a){this.files=[],this.loadOptions=a}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./signature"),h=a("./zipEntry"),i=(a("./utf8"),a("./support"));d.prototype={checkSignature:function(a){if(!this.reader.readAndCheckSignature(a)){this.reader.index-=4;var b=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+f.pretty(b)+", expected "+f.pretty(a)+")")}},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=i.uint8array?"uint8array":"array",c=f.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(g.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(g.CENTRAL_FILE_HEADER);)a=new h({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(g.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,g.LOCAL_FILE_HEADER);throw b?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(a);var c=a;if(this.checkSignature(g.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===f.MAX_VALUE_16BITS||this.diskWithCentralDirStart===f.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===f.MAX_VALUE_16BITS||this.centralDirRecords===f.MAX_VALUE_16BITS||this.centralDirSize===f.MAX_VALUE_32BITS||this.centralDirOffset===f.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,g.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.index<e;)b=a.readInt(2),c=a.readInt(2),d=a.readData(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=k.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=i.utf8decode(this.fileName),this.fileCommentStr=i.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileName)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileComment)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null}},b.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(a,b,c){"use strict";var d=a("./stream/StreamHelper"),e=a("./stream/DataWorker"),f=a("./utf8"),g=a("./compressedObject"),h=a("./stream/GenericWorker"),i=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this._dataBinary=c.binary,this.options={compression:c.compression,compressionOptions:c.compressionOptions}};i.prototype={internalStream:function(a){var b=null,c="string";try{if(!a)throw new Error("No output type specified.");c=a.toLowerCase();var e="string"===c||"text"===c;"binarystring"!==c&&"text"!==c||(c="string"),b=this._decompressWorker();var g=!this._dataBinary;g&&!e&&(b=b.pipe(new f.Utf8EncodeWorker)),!g&&e&&(b=b.pipe(new f.Utf8DecodeWorker))}catch(i){b=new h("error"),b.error(i)}return new d(b,c,"")},async:function(a,b){return this.internalStream(a).accumulate(b)},nodeStream:function(a,b){return this.internalStream(a||"nodebuffer").toNodejsStream(b)},_compressWorker:function(a,b){if(this._data instanceof g&&this._data.compression.magic===a.magic)return this._data.getCompressedWorker();var c=this._decompressWorker();return this._dataBinary||(c=c.pipe(new f.Utf8EncodeWorker)),g.createWorkerFrom(c,a,b)},_decompressWorker:function(){return this._data instanceof g?this._data.getContentWorker():this._data instanceof h?this._data:new e(this._data)}};for(var j=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],k=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<j.length;l++)i.prototype[j[l]]=k;b.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(a,b,c){a("../modules/web.immediate"),b.exports=a("../modules/_core").setImmediate},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(a,b,c){b.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},{}],38:[function(a,b,c){var d=a("./_is-object");b.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},{"./_is-object":51}],39:[function(a,b,c){var d={}.toString;b.exports=function(a){return d.call(a).slice(8,-1)}},{}],40:[function(a,b,c){var d=b.exports={version:"2.3.0"};"number"==typeof __e&&(__e=d)},{}],41:[function(a,b,c){var d=a("./_a-function");b.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},{"./_a-function":37}],42:[function(a,b,c){b.exports=!a("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":45}],43:[function(a,b,c){var d=a("./_is-object"),e=a("./_global").document,f=d(e)&&d(e.createElement);b.exports=function(a){return f?e.createElement(a):{}}},{"./_global":46,"./_is-object":51}],44:[function(a,b,c){var d=a("./_global"),e=a("./_core"),f=a("./_ctx"),g=a("./_hide"),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];n&&(c=b);for(j in c)k=!m&&u&&void 0!==u[j],k&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,b.exports=i},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(a,b,c){b.exports=function(a){try{return!!a()}catch(b){return!0}}},{}],46:[function(a,b,c){var d=b.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=d)},{}],47:[function(a,b,c){var d=a("./_object-dp"),e=a("./_property-desc");b.exports=a("./_descriptors")?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(a,b,c){b.exports=a("./_global").document&&document.documentElement},{"./_global":46}],49:[function(a,b,c){b.exports=!a("./_descriptors")&&!a("./_fails")(function(){return 7!=Object.defineProperty(a("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(a,b,c){b.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},{}],51:[function(a,b,c){b.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},{}],52:[function(a,b,c){var d=a("./_an-object"),e=a("./_ie8-dom-define"),f=a("./_to-primitive"),g=Object.defineProperty;c.f=a("./_descriptors")?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(a,b,c){b.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},{}],54:[function(a,b,c){var d,e,f,g=a("./_ctx"),h=a("./_invoke"),i=a("./_html"),j=a("./_dom-create"),k=a("./_global"),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==a("./_cof")(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),b.exports={set:m,clear:n}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(a,b,c){var d=a("./_is-object");b.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":51}],56:[function(a,b,c){var d=a("./_export"),e=a("./_task");d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},{"./_export":44,"./_task":54}],57:[function(a,b,c){(function(a){"use strict";function c(){k=!0;for(var a,b,c=l.length;c;){for(b=l,l=[],a=-1;++a<c;)b[a]();c=l.length}k=!1}function d(a){1!==l.push(a)||k||e()}var e,f=a.MutationObserver||a.WebKitMutationObserver;if(f){var g=0,h=new f(c),i=a.document.createTextNode("");h.observe(i,{characterData:!0}),e=function(){i.data=g=++g%2}}else if(a.setImmediate||"undefined"==typeof a.MessageChannel)e="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var b=a.document.createElement("script");b.onreadystatechange=function(){c(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},a.document.documentElement.appendChild(b)}:function(){setTimeout(c,0)};else{var j=new a.MessageChannel;j.port1.onmessage=c,e=function(){j.port2.postMessage(0)}}var k,l=[];b.exports=d}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],58:[function(a,b,c){"use strict";function d(){}function e(a){if("function"!=typeof a)throw new TypeError("resolver must be a function");this.state=s,this.queue=[],this.outcome=void 0,a!==d&&i(this,a)}function f(a,b,c){this.promise=a,"function"==typeof b&&(this.onFulfilled=b,this.callFulfilled=this.otherCallFulfilled),"function"==typeof c&&(this.onRejected=c,this.callRejected=this.otherCallRejected)}function g(a,b,c){o(function(){var d;try{d=b(c)}catch(e){return p.reject(a,e)}d===a?p.reject(a,new TypeError("Cannot resolve promise with itself")):p.resolve(a,d)})}function h(a){var b=a&&a.then;if(a&&("object"==typeof a||"function"==typeof a)&&"function"==typeof b)return function(){b.apply(a,arguments)}}function i(a,b){function c(b){f||(f=!0,p.reject(a,b))}function d(b){f||(f=!0,p.resolve(a,b))}function e(){b(d,c)}var f=!1,g=j(e);"error"===g.status&&c(g.value)}function j(a,b){var c={};try{c.value=a(b),c.status="success"}catch(d){c.status="error",c.value=d}return c}function k(a){return a instanceof this?a:p.resolve(new this(d),a)}function l(a){var b=new this(d);return p.reject(b,a)}function m(a){function b(a,b){function d(a){g[b]=a,++h!==e||f||(f=!0,p.resolve(j,g))}c.resolve(a).then(d,function(a){f||(f=!0,p.reject(j,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=new Array(e),h=0,i=-1,j=new this(d);++i<e;)b(a[i],i);return j}function n(a){function b(a){c.resolve(a).then(function(a){f||(f=!0,p.resolve(h,a))},function(a){f||(f=!0,p.reject(h,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=-1,h=new this(d);++g<e;)b(a[g]);return h}var o=a("immediate"),p={},q=["REJECTED"],r=["FULFILLED"],s=["PENDING"];b.exports=e,e.prototype["catch"]=function(a){return this.then(null,a)},e.prototype.then=function(a,b){if("function"!=typeof a&&this.state===r||"function"!=typeof b&&this.state===q)return this;var c=new this.constructor(d);if(this.state!==s){var e=this.state===r?a:b;g(c,e,this.outcome)}else this.queue.push(new f(c,a,b));return c},f.prototype.callFulfilled=function(a){p.resolve(this.promise,a)},f.prototype.otherCallFulfilled=function(a){g(this.promise,this.onFulfilled,a)},f.prototype.callRejected=function(a){p.reject(this.promise,a)},f.prototype.otherCallRejected=function(a){g(this.promise,this.onRejected,a)},p.resolve=function(a,b){var c=j(h,b);if("error"===c.status)return p.reject(a,c.value);var d=c.value;if(d)i(a,d);else{a.state=r,a.outcome=b;for(var e=-1,f=a.queue.length;++e<f;)a.queue[e].callFulfilled(b)}return a},p.reject=function(a,b){a.state=q,a.outcome=b;for(var c=-1,d=a.queue.length;++c<d;)a.queue[c].callRejected(b);return a},e.resolve=k,e.reject=l,e.all=m,e.race=n},{immediate:57}],59:[function(a,b,c){"use strict";var d=a("./lib/utils/common").assign,e=a("./lib/deflate"),f=a("./lib/inflate"),g=a("./lib/zlib/constants"),h={};d(h,e,f,g),b.exports=h},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],63:[function(a,b,c){"use strict";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":62}],64:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0;
+}b.exports=d},{}],65:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],67:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a("../utils/common"),F=a("./trees"),G=a("./adler32"),H=a("./crc32"),I=a("./messages"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(a,b,c){"use strict";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=d},{}],69:[function(a,b,c){"use strict";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg="invalid literal/length code",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],70:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg="unknown compression method",c.mode=ma;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a("../utils/common"),t=a("./adler32"),u=a("./crc32"),v=a("./inffast"),w=a("./inftrees"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(a,b,c){"use strict";var d=a("../utils/common"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(;;){z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":62}],72:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,
+c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":62}],74:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});
\ No newline at end of file
diff --git a/apidocs/3.0.0/member-search-index.js b/apidocs/3.0.0/member-search-index.js
new file mode 100644
index 0000000..977bd12
--- /dev/null
+++ b/apidocs/3.0.0/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"abortWith(Response)","url":"abortWith(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"abortWith(Response)","url":"abortWith(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"AbstractMultivaluedMap(Map<K, List<V>>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_CHARSET"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_ENCODING"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_LANGUAGE"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"accept(MediaType...)","url":"accept(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"accept(String...)","url":"accept(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"ACCEPTED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"accepted()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"accepted(Object)","url":"accepted(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptEncoding(String...)","url":"acceptEncoding(java.lang.String...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(Locale...)","url":"acceptLanguage(java.util.Locale...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(String...)","url":"acceptLanguage(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"add()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirstNull(List<V>)","url":"addFirstNull(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addNull(List<V>)","url":"addNull(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ALLOW"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(Set<String>)","url":"allow(java.util.Set)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(String...)","url":"allow(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"Application","l":"Application()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptor","l":"aroundReadFrom(ReaderInterceptorContext)","url":"aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptor","l":"aroundWriteTo(WriterInterceptorContext)","url":"aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"asMap()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"async()"},{"p":"jakarta.ws.rs","c":"Priorities","l":"AUTHENTICATION"},{"p":"jakarta.ws.rs","c":"Priorities","l":"AUTHORIZATION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"AUTHORIZATION"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"BAD_GATEWAY"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"BAD_REQUEST"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"baseUri(String)","url":"baseUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"baseUri(URI)","url":"baseUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"BASIC_AUTH"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"broadcast(OutboundSseEvent)","url":"broadcast(jakarta.ws.rs.sse.OutboundSseEvent)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"bufferEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"build()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"build()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"build(Object...)","url":"build(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"build(Object...)","url":"build(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"build(Object[], boolean)","url":"build(java.lang.Object[],boolean)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"build(String, Entity<?>)","url":"build(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"build(String)","url":"build(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildDelete()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"Builder()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromEncoded(Object...)","url":"buildFromEncoded(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromEncodedMap(Map<String, ?>)","url":"buildFromEncodedMap(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map<String, ?>, boolean)","url":"buildFromMap(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map<String, ?>)","url":"buildFromMap(java.util.Map)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildGet()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildPost(Entity<?>)","url":"buildPost(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildPut(Entity<?>)","url":"buildPut(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"buildRelativized(URI, Object...)","url":"buildRelativized(java.net.URI,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CACHE_CONTROL"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"CacheControl()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cacheControl(CacheControl)","url":"cacheControl(jakarta.ws.rs.core.CacheControl)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"cacheControl(CacheControl)","url":"cacheControl(jakarta.ws.rs.core.CacheControl)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel()"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel(Date)","url":"cancel(java.util.Date)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel(int)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"CHARSET_PARAMETER"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"clear()"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"CLIENT"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"CLIENT_CERT_AUTH"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"CLIENT_ERROR"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"ClientBuilder()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int, Throwable)","url":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int)","url":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int, Throwable)","url":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"clone()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"clone()"},{"p":"jakarta.ws.rs.client","c":"Client","l":"close()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"close(long, TimeUnit)","url":"close(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"comment(String)","url":"comment(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"InvocationCallback","l":"completed(RESPONSE)"},{"p":"jakarta.ws.rs.core","c":"Feature","l":"configure(FeatureContext)","url":"configure(jakarta.ws.rs.core.FeatureContext)"},{"p":"jakarta.ws.rs.container","c":"DynamicFeature","l":"configure(ResourceInfo, FeatureContext)","url":"configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"CONFLICT"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"connectTimeout(long, TimeUnit)","url":"connectTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsKey(Object)","url":"containsKey(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsValue(Object)","url":"containsValue(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_DISPOSITION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ENCODING"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ID"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LANGUAGE"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LENGTH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LOCATION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_TYPE"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"contentLocation(URI)","url":"contentLocation(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"COOKIE"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cookie(Cookie)","url":"cookie(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"cookie(NewCookie...)","url":"cookie(jakarta.ws.rs.core.NewCookie...)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String, int)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cookie(String, String)","url":"cookie(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"CREATED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"created(URI)","url":"created(java.net.URI)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createEndpoint(Application, Class<T>)","url":"createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createHeaderDelegate(Class<T>)","url":"createHeaderDelegate(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createLinkBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createResponseBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createUriBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createVariantListBuilder()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Class, Object)","url":"data(java.lang.Class,java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(GenericType, Object)","url":"data(jakarta.ws.rs.core.GenericType,java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Object)","url":"data(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"DATE"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"DEFAULT_MAX_AGE"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"DEFAULT_VERSION"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"DELETE"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete(Class<R>)","url":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete(GenericType<R>)","url":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(GenericType<T>)","url":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(GenericType<T>)","url":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete(GenericType<T>)","url":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(InvocationCallback<T>)","url":"delete(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"DIGEST_AUTH"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"encoding(String)","url":"encoding(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"encodings(String...)","url":"encodings(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"encodings(String...)","url":"encodings(java.lang.String...)"},{"p":"jakarta.ws.rs","c":"Priorities","l":"ENTITY_CODER"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object, Annotation[])","url":"entity(java.lang.Object,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object)","url":"entity(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, MediaType, Annotation[])","url":"entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, MediaType)","url":"entity(T,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, String)","url":"entity(T,java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, Variant, Annotation[])","url":"entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, Variant)","url":"entity(T,jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"EntityTag(String, boolean)","url":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"EntityTag(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"entrySet()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ETAG"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions()"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date, EntityTag)","url":"evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date)","url":"evaluatePreconditions(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(EntityTag)","url":"evaluatePreconditions(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"executorService(ExecutorService)","url":"executorService(java.util.concurrent.ExecutorService)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"EXPECTATION_FAILED"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"EXPIRES"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"expires(Date)","url":"expires(java.util.Date)"},{"p":"jakarta.ws.rs.client","c":"InvocationCallback","l":"failed(Throwable)","url":"failed(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"familyOf(int)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseFilter","l":"filter(ClientRequestContext, ClientResponseContext)","url":"filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestFilter","l":"filter(ClientRequestContext)","url":"filter(jakarta.ws.rs.client.ClientRequestContext)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseFilter","l":"filter(ContainerRequestContext, ContainerResponseContext)","url":"filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestFilter","l":"filter(ContainerRequestContext)","url":"filter(jakarta.ws.rs.container.ContainerRequestContext)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"FORBIDDEN"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"forInstance(Object)","url":"forInstance(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"FORM_AUTH"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"form(Form)","url":"form(jakarta.ws.rs.core.Form)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"form(MultivaluedMap<String, String>)","url":"form(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form(MultivaluedMap<String, String>)","url":"%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"FOUND"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fragment(String)","url":"fragment(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromLink(Link)","url":"fromLink(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromLink(Link)","url":"fromLink(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromMethod(Class<?>, String)","url":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromMethod(Class<?>, String)","url":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromPath(String)","url":"fromPath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromPath(String)","url":"fromPath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromResource(Class<?>)","url":"fromResource(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromResource(Class<?>)","url":"fromResource(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"fromResponse(Response)","url":"fromResponse(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"fromStatusCode(int)"},{"p":"jakarta.ws.rs.ext","c":"ParamConverter","l":"fromString(String)","url":"fromString(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"fromString(String)","url":"fromString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUri(String)","url":"fromUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromUri(String)","url":"fromUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUri(URI)","url":"fromUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromUri(URI)","url":"fromUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUriBuilder(UriBuilder)","url":"fromUriBuilder(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"GATEWAY_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T, Type)","url":"%3Cinit%3E(T,java.lang.reflect.Type)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T)","url":"%3Cinit%3E(T)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"GenericType()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"GenericType(Type)","url":"%3Cinit%3E(java.lang.reflect.Type)"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"GET"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get(Class<R>)","url":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get(GenericType<R>)","url":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(GenericType<T>)","url":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(GenericType<T>)","url":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get(GenericType<T>)","url":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(InvocationCallback<T>)","url":"get(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"get(Object)","url":"get(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getAbsolutePath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getAbsolutePathBuilder()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getAnnotations()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getAnnotations()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"getAuthenticationScheme()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getBaseUri()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getBaseUriBuilder()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getCacheExtension()"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"getChallenges()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getClasses()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getClasses()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getClient()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getComment()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getComment()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getConfiguration()"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"getConfiguration()"},{"p":"jakarta.ws.rs.ext","c":"ContextResolver","l":"getContext(Class<?>)","url":"getContext(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getContextResolver(Class<T>, MediaType)","url":"getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getContracts(Class<?>)","url":"getContracts(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"ParamConverterProvider","l":"getConverter(Class<T>, Type, Annotation[])","url":"getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getCookies()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getCookies()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getCookies()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getCookies()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getCookies()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getCookies()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getData()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getDate()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getDate()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getDate()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getDomain()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getEncoding()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getEncoding()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntity()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntity()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getEntity()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getEntity()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityAnnotations()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityAnnotations()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityClass()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityClass()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getEntityTag()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityTag()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getEntityTag()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityType()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityType()"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getExceptionMapper(Class<T>)","url":"getExceptionMapper(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getExpiry()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getFamily()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getFamily()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"getFirst(K)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"getFirst(K)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getGenericType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getGenericType()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getHeaders()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"getHostnameVerifier()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getId()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"getInputStream()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"getInstance()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getInstances()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getLanguage()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getLanguageString()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLastModified()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLastModified()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLastModified()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLength()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getLength()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLength()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getLength()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLength()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLinks()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLinks()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLinks()"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"getLocation()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLocation()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLocation()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLocation()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedResources()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedURIs()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedURIs(boolean)"},{"p":"jakarta.ws.rs.core","c":"PathSegment","l":"getMatrixParameters()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getMaxAge()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getMaxAge()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getMediaType()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getMediaType()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getMediaType()"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getMessageBodyReader(Class<T>, Type, Annotation[], MediaType)","url":"getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getMessageBodyWriter(Class<T>, Type, Annotation[], MediaType)","url":"getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getMetadata()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getMethod()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getMethod()"},{"p":"jakarta.ws.rs.core","c":"Request","l":"getMethod()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getName()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getName()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getNoCacheFields()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getOutputStream()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getParameters()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getParams()"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"getParams()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"PathSegment","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPath(boolean)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathParameters()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathParameters(boolean)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathSegments()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathSegments(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getPrivateFields()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getProperties()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getProperties()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getQueryParameters()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getQueryParameters(boolean)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getRawType()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"getRawType()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getReasonPhrase()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getReasonPhrase()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getReconnectDelay()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getRel()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getRels()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getRequest()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getRequestHeader(String)","url":"getRequestHeader(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getRequestHeaders()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getRequestUri()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getRequestUriBuilder()"},{"p":"jakarta.ws.rs.container","c":"ResourceContext","l":"getResource(Class<T>)","url":"getResource(java.lang.Class)"},{"p":"jakarta.ws.rs.container","c":"ResourceInfo","l":"getResourceClass()"},{"p":"jakarta.ws.rs.container","c":"ResourceInfo","l":"getResourceMethod()"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"getResponse()"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"getResponse()"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"getRetryTime(Date)","url":"getRetryTime(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getRuntimeType()"},{"p":"jakarta.ws.rs.client","c":"RxInvokerProvider","l":"getRxInvoker(SyncInvoker, ExecutorService)","url":"getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getSecurityContext()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getSingletons()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"getSize(T, Class<?>, Type, Annotation[], MediaType)","url":"getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getSMaxAge()"},{"p":"jakarta.ws.rs.client","c":"Client","l":"getSslContext()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getStatus()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStatus()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStatus()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getStatusCode()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getStatusCode()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getSubtype()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getTitle()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getType()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getType()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getUri()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"getUri()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getUri()"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"getUri()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"getUriBuilder()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getUriBuilder()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getUriInfo()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"getUserPrincipal()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getValue()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"getValue()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"getValues(K)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getVariant()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getVersion()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"GONE"},{"p":"jakarta.ws.rs.container","c":"TimeoutHandler","l":"handleTimeout(AsyncResponse)","url":"handleTimeout(jakarta.ws.rs.container.AsyncResponse)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"hasEntity()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"hashCode()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"hasRetryAfter()"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"HEAD"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"head(InvocationCallback<Response>)","url":"head(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs","c":"Priorities","l":"HEADER_DECORATOR"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"header(String, Object)","url":"header(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"header(String, Object)","url":"header(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"headers(MultivaluedMap<String, Object>)","url":"headers(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"HOST"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"host(String)","url":"host(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"hostnameVerifier(HostnameVerifier)","url":"hostnameVerifier(javax.net.ssl.HostnameVerifier)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"html(T)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"HTTP_VERSION_NOT_SUPPORTED"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"id(String)","url":"id(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_MATCH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_MODIFIED_SINCE"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_NONE_MATCH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_UNMODIFIED_SINCE"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"INFORMATIONAL"},{"p":"jakarta.ws.rs.container","c":"ResourceContext","l":"initResource(T)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"INTERNAL_SERVER_ERROR"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"invocation(Link)","url":"invocation(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke()"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke(Class<T>)","url":"invoke(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke(GenericType<T>)","url":"invoke(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isCancelled()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"isClosed()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isCompatible(MediaType)","url":"isCompatible(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isDone()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"isEmpty()"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"isEmpty()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isEnabled(Class<? extends Feature>)","url":"isEnabled(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isEnabled(Feature)","url":"isEnabled(jakarta.ws.rs.core.Feature)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"isHttpOnly()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isMustRevalidate()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoCache()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoStore()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoTransform()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"isOpen()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isPrivate()"},{"p":"jakarta.ws.rs.client","c":"RxInvokerProvider","l":"isProviderFor(Class<?>)","url":"isProviderFor(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isProxyRevalidate()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyReader","l":"isReadable(Class<?>, Type, Annotation[], MediaType)","url":"isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"isReconnectDelaySet()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isRegistered(Class<?>)","url":"isRegistered(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isRegistered(Object)","url":"isRegistered(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"isSecure()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"isSecure()"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isSuspended()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"isUserInRole(String)","url":"isUserInRole(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"isWeak()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isWildcardSubtype()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isWildcardType()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"isWriteable(Class<?>, Type, Annotation[], MediaType)","url":"isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbAdapter","l":"JaxbAdapter()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink(URI, Map<QName, Object>)","url":"%3Cinit%3E(java.net.URI,java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink(URI)","url":"%3Cinit%3E(java.net.URI)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"JAXRS_DEFAULT_SSE_BUILDER_PROPERTY"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"JAXRS_RUNTIME_DELEGATE_PROPERTY"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"json(T)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"keySet()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, char[])","url":"keyStore(java.security.KeyStore,char[])"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, String)","url":"keyStore(java.security.KeyStore,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"language(Locale)","url":"language(java.util.Locale)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"language(String)","url":"language(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"languages(Locale...)","url":"languages(java.util.Locale...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"languages(Locale...)","url":"languages(java.util.Locale...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LAST_EVENT_ID_HEADER"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LAST_MODIFIED"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"lastModified(Date)","url":"lastModified(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"LENGTH_REQUIRED"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LINK"},{"p":"jakarta.ws.rs.core","c":"Link","l":"Link()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"link(Link)","url":"link(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"link(String, String)","url":"link(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"link(String)","url":"link(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"link(URI, String)","url":"link(java.net.URI,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"links(Link...)","url":"links(jakarta.ws.rs.core.Link...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LOCATION"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"location(URI)","url":"location(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbAdapter","l":"marshal(Link)","url":"marshal(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"matrixParam(String, Object...)","url":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"matrixParam(String, Object...)","url":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MEDIA_TYPE_WILDCARD"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"mediaType(MediaType)","url":"mediaType(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String, Map<String, String>)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"mediaTypes(MediaType...)","url":"mediaTypes(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"mediaTypes(MediaType...)","url":"mediaTypes(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"METHOD_NOT_ALLOWED"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Class<R>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>, Class<R>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>, GenericType<R>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, InvocationCallback<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, GenericType<R>)","url":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, InvocationCallback<T>)","url":"method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"MOVED_PERMANENTLY"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA_TYPE"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int, float)","url":"%3Cinit%3E(int,float)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int)","url":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(Map<? extends K, ? extends V>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(MultivaluedMap<? extends K, ? extends V>)","url":"%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"name(String)","url":"name(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NETWORK_AUTHENTICATION_REQUIRED"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newBroadcaster()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newBuilder()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newClient()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newClient(Configuration)","url":"newClient(jakarta.ws.rs.core.Configuration)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, boolean)","url":"%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, Date, boolean, boolean)","url":"%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie)","url":"%3Cinit%3E(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEvent(String, String)","url":"newEvent(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEvent(String)","url":"newEvent(java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEventBuilder()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NO_CONTENT"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"NO_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"Response","l":"noContent()"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_ACCEPTABLE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_FOUND"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_IMPLEMENTED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_MODIFIED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notAcceptable(List<Variant>)","url":"notAcceptable(java.util.List)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Throwable, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Throwable, String...)","url":"%3Cinit%3E(java.lang.Throwable,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Object, Object...)","url":"%3Cinit%3E(java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Object, Object...)","url":"%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Throwable, Object, Object...)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Throwable, Object, Object...)","url":"%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified(EntityTag)","url":"notModified(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified(String)","url":"notModified(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"OK"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, MediaType)","url":"ok(java.lang.Object,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, String)","url":"ok(java.lang.Object,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, Variant)","url":"ok(java.lang.Object,jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object)","url":"ok(java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"onClose(Consumer<SseEventSink>)","url":"onClose(java.util.function.Consumer)"},{"p":"jakarta.ws.rs.container","c":"CompletionCallback","l":"onComplete(Throwable)","url":"onComplete(java.lang.Throwable)"},{"p":"jakarta.ws.rs.container","c":"ConnectionCallback","l":"onDisconnect(AsyncResponse)","url":"onDisconnect(jakarta.ws.rs.container.AsyncResponse)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"onError(BiConsumer<SseEventSink, Throwable>)","url":"onError(java.util.function.BiConsumer)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"open()"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"OPTIONS"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options(Class<R>)","url":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options(GenericType<R>)","url":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(GenericType<T>)","url":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(GenericType<T>)","url":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options(GenericType<T>)","url":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(InvocationCallback<T>)","url":"options(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"OTHER"},{"p":"jakarta.ws.rs.core","c":"Form","l":"param(String, String)","url":"param(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"param(String, String)","url":"param(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PARTIAL_CONTENT"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"PATCH"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Class, String)","url":"path(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Class)","url":"path(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Method)","url":"path(java.lang.reflect.Method)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"path(String)","url":"path(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(String)","url":"path(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PAYMENT_REQUIRED"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"port(int)"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"POST"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>, Class<R>)","url":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, Class<T>)","url":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>, Class<T>)","url":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>, Class<T>)","url":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>, GenericType<R>)","url":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, InvocationCallback<T>)","url":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>)","url":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>)","url":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>)","url":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>)","url":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PRECONDITION_FAILED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PRECONDITION_REQUIRED"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"proceed()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"proceed()"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PROXY_AUTHENTICATION_REQUIRED"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"PUT"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>, Class<R>)","url":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, Class<T>)","url":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>, Class<T>)","url":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>, Class<T>)","url":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>, GenericType<R>)","url":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, InvocationCallback<T>)","url":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>)","url":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>)","url":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>)","url":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>)","url":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"put(K, List<V>)","url":"put(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"putAll(Map<? extends K, ? extends List<V>>)","url":"putAll(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"queryParam(String, Object...)","url":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"queryParam(String, Object...)","url":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData()"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class<T>, MediaType)","url":"readData(java.lang.Class,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class<T>)","url":"readData(java.lang.Class)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType<T>, MediaType)","url":"readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType<T>)","url":"readData(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(Class<T>, Annotation[])","url":"readEntity(java.lang.Class,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(Class<T>)","url":"readEntity(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(GenericType<T>, Annotation[])","url":"readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(GenericType<T>)","url":"readEntity(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyReader","l":"readFrom(Class<T>, Type, Annotation[], MediaType, MultivaluedMap<String, String>, InputStream)","url":"readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"readTimeout(long, TimeUnit)","url":"readTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"RECONNECT_NOT_SET"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"reconnectDelay(long)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"reconnectingEvery(long, TimeUnit)","url":"reconnectingEvery(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"REDIRECTION"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(int, URI)","url":"%3Cinit%3E(int,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(Response.Status, URI)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, int, URI)","url":"%3Cinit%3E(java.lang.String,int,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response.Status, URI)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Class<?>, Class<?>...)","url":"register(java.lang.Class,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class<?>, Class<?>...)","url":"register(java.lang.Class,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class<?>, int)","url":"register(java.lang.Class,int)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class<?>, Map<Class<?>, Integer>)","url":"register(java.lang.Class,java.util.Map)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Class<?>)","url":"register(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class<?>)","url":"register(java.lang.Class)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>, Consumer<Throwable>, Runnable)","url":"register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>, Consumer<Throwable>)","url":"register(java.util.function.Consumer,java.util.function.Consumer)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>)","url":"register(java.util.function.Consumer)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, Class<?>...)","url":"register(java.lang.Object,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, int)","url":"register(java.lang.Object,int)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, Map<Class<?>, Integer>)","url":"register(java.lang.Object,java.util.Map)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Object, Object...)","url":"register(java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Object)","url":"register(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object)","url":"register(java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"register(SseEventSink)","url":"register(jakarta.ws.rs.sse.SseEventSink)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"REL"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"rel(String)","url":"rel(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"relativize(URI)","url":"relativize(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"remove(Object)","url":"remove(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"replaceAll(MultivaluedMap<String, Object>)","url":"replaceAll(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceMatrix(String)","url":"replaceMatrix(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceMatrixParam(String, Object...)","url":"replaceMatrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replacePath(String)","url":"replacePath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceQuery(String)","url":"replaceQuery(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceQueryParam(String, Object...)","url":"replaceQueryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_ENTITY_TOO_LARGE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_HEADER_FIELDS_TOO_LARGE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_URI_TOO_LONG"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request(MediaType...)","url":"request(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request(String...)","url":"request(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUESTED_RANGE_NOT_SATISFIABLE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"RESET_CONTENT"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"resolve(URI)","url":"resolve(java.net.URI)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object, boolean)","url":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object, boolean)","url":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object)","url":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object)","url":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplateFromEncoded(String, Object)","url":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplateFromEncoded(String, Object)","url":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map<String, Object>, boolean)","url":"resolveTemplates(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map<String, Object>, boolean)","url":"resolveTemplates(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map<String, Object>)","url":"resolveTemplates(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map<String, Object>)","url":"resolveTemplates(java.util.Map)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplatesFromEncoded(Map<String, Object>)","url":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplatesFromEncoded(Map<String, Object>)","url":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"Response()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"ResponseBuilder()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"resume(Object)","url":"resume(java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"resume(Throwable)","url":"resume(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"RETRY_AFTER"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"RuntimeDelegate()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"rx()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"rx(Class<T>)","url":"rx(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"scheduledExecutorService(ScheduledExecutorService)","url":"scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"scheme(String)","url":"scheme(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"schemeSpecificPart(String)","url":"schemeSpecificPart(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"SEE_OTHER"},{"p":"jakarta.ws.rs.core","c":"Response","l":"seeOther(URI)","url":"seeOther(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"segment(String...)","url":"segment(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"selectVariant(List<Variant>)","url":"selectVariant(java.util.List)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"send(OutboundSseEvent)","url":"send(jakarta.ws.rs.sse.OutboundSseEvent)"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"SERVER"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"SERVER_ERROR"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS_TYPE"},{"p":"jakarta.ws.rs.core","c":"Response","l":"serverError()"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int, Throwable)","url":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int)","url":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int, Throwable)","url":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"SERVICE_UNAVAILABLE"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date, Throwable)","url":"%3Cinit%3E(java.util.Date,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date)","url":"%3Cinit%3E(java.util.Date)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long, Throwable)","url":"%3Cinit%3E(java.lang.Long,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long)","url":"%3Cinit%3E(java.lang.Long)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response, Throwable)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date, Throwable)","url":"%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date)","url":"%3Cinit%3E(java.lang.String,java.util.Date)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long)","url":"%3Cinit%3E(java.lang.String,java.lang.Long)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"SET_COOKIE"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setAnnotations(Annotation[])","url":"setAnnotations(java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object, Annotation[], MediaType)","url":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object, Annotation[], MediaType)","url":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setEntityStream(InputStream)","url":"setEntityStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setEntityStream(InputStream)","url":"setEntityStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntityStream(OutputStream)","url":"setEntityStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntityStream(OutputStream)","url":"setEntityStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setGenericType(Type)","url":"setGenericType(java.lang.reflect.Type)"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"setInputStream(InputStream)","url":"setInputStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"setInstance(RuntimeDelegate)","url":"setInstance(jakarta.ws.rs.ext.RuntimeDelegate)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setMaxAge(int)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setMediaType(MediaType)","url":"setMediaType(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setMethod(String)","url":"setMethod(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setMethod(String)","url":"setMethod(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setMustRevalidate(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoCache(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoStore(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoTransform(boolean)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"setOutputStream(OutputStream)","url":"setOutputStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setPrivate(boolean)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setProxyRevalidate(boolean)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI, URI)","url":"setRequestUri(java.net.URI,java.net.URI)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI)","url":"setRequestUri(java.net.URI)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setSecurityContext(SecurityContext)","url":"setSecurityContext(jakarta.ws.rs.core.SecurityContext)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setSMaxAge(int)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setStatus(int)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setStatus(int)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setStatusInfo(Response.StatusType)","url":"setStatusInfo(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setStatusInfo(Response.StatusType)","url":"setStatusInfo(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"setTimeout(long, TimeUnit)","url":"setTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"setTimeoutHandler(TimeoutHandler)","url":"setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setType(Class<?>)","url":"setType(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setUri(URI)","url":"setUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"size()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"sslContext(SSLContext)","url":"sslContext(javax.net.ssl.SSLContext)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(int, String)","url":"status(int,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int, String)","url":"status(int,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(int)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(Response.Status)","url":"status(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.Status)","url":"status(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(Response.StatusType)","url":"status(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.StatusType)","url":"status(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"store"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit()"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(Class<T>)","url":"submit(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(GenericType<T>)","url":"submit(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(InvocationCallback<T>)","url":"submit(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"SUCCESSFUL"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(EntityTag)","url":"tag(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(String)","url":"tag(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(Link)","url":"target(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(String)","url":"target(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(URI)","url":"target(java.net.URI)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(UriBuilder)","url":"target(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"target(WebTarget)","url":"target(jakarta.ws.rs.client.WebTarget)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"target(WebTarget)","url":"target(jakarta.ws.rs.client.WebTarget)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"TEMPORARY_REDIRECT"},{"p":"jakarta.ws.rs.core","c":"Response","l":"temporaryRedirect(URI)","url":"temporaryRedirect(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_HTML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_HTML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_XML_TYPE"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"text(T)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"TITLE"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"title(String)","url":"title(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"toCookie()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"toEnum()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"TOO_MANY_REQUESTS"},{"p":"jakarta.ws.rs.ext","c":"ExceptionMapper","l":"toResponse(E)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"toString()"},{"p":"jakarta.ws.rs.ext","c":"ParamConverter","l":"toString(T)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"toString(T)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"toTemplate()"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace(Class<R>)","url":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace(GenericType<R>)","url":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(GenericType<T>)","url":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(GenericType<T>)","url":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace(GenericType<T>)","url":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(InvocationCallback<T>)","url":"trace(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"trustStore(KeyStore)","url":"trustStore(java.security.KeyStore)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"TYPE"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"type(MediaType)","url":"type(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"type(String)","url":"type(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"type(String)","url":"type(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"UNAUTHORIZED"},{"p":"jakarta.ws.rs.core","c":"Link.JaxbAdapter","l":"unmarshal(Link.JaxbLink)","url":"unmarshal(jakarta.ws.rs.core.Link.JaxbLink)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"UNSUPPORTED_MEDIA_TYPE"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uri(String)","url":"uri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"uri(String)","url":"uri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uri(URI)","url":"uri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"uri(URI)","url":"uri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"UriBuilder()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uriBuilder(UriBuilder)","url":"uriBuilder(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"USE_PROXY"},{"p":"jakarta.ws.rs","c":"Priorities","l":"USER"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"USER_AGENT"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"userInfo(String)","url":"userInfo(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ApplicationPath","l":"value()"},{"p":"jakarta.ws.rs","c":"ConstrainedTo","l":"value()"},{"p":"jakarta.ws.rs","c":"Consumes","l":"value()"},{"p":"jakarta.ws.rs","c":"CookieParam","l":"value()"},{"p":"jakarta.ws.rs","c":"DefaultValue","l":"value()"},{"p":"jakarta.ws.rs","c":"FormParam","l":"value()"},{"p":"jakarta.ws.rs","c":"HeaderParam","l":"value()"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"value()"},{"p":"jakarta.ws.rs","c":"MatrixParam","l":"value()"},{"p":"jakarta.ws.rs","c":"Path","l":"value()"},{"p":"jakarta.ws.rs","c":"PathParam","l":"value()"},{"p":"jakarta.ws.rs","c":"Produces","l":"value()"},{"p":"jakarta.ws.rs","c":"QueryParam","l":"value()"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"values()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, Locale, String)","url":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String, String)","url":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String)","url":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String)","url":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variant(Variant)","url":"variant(jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"VariantListBuilder()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(List<Variant>)","url":"variants(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(Variant...)","url":"variants(jakarta.ws.rs.core.Variant...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"VARY"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException()","url":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(int)","url":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response.Status)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response)","url":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response)","url":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, int)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response.Status)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, int)","url":"%3Cinit%3E(java.lang.Throwable,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response.Status)","url":"%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response)","url":"%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"WILDCARD"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"WILDCARD_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"withCharset(String)","url":"withCharset(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"withConfig(Configuration)","url":"withConfig(jakarta.ws.rs.core.Configuration)"},{"p":"jakarta.ws.rs.core","c":"StreamingOutput","l":"write(OutputStream)","url":"write(java.io.OutputStream)"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"writeTo(T, Class<?>, Type, Annotation[], MediaType, MultivaluedMap<String, Object>, OutputStream)","url":"writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"WWW_AUTHENTICATE"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"xhtml(T)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"xml(T)"}]
\ No newline at end of file
diff --git a/apidocs/3.0.0/member-search-index.zip b/apidocs/3.0.0/member-search-index.zip
new file mode 100644
index 0000000..e48777e
--- /dev/null
+++ b/apidocs/3.0.0/member-search-index.zip
Binary files differ
diff --git a/apidocs/3.0.0/overview-summary.html b/apidocs/3.0.0/overview-summary.html
new file mode 100644
index 0000000..a3ab684
--- /dev/null
+++ b/apidocs/3.0.0/overview-summary.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>jakarta.ws.rs-api 3.0.0 API</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">window.location.replace('index.html')</script>
+<noscript>
+<meta http-equiv="Refresh" content="0;index.html">
+</noscript>
+<link rel="canonical" href="index.html">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<main role="main">
+<noscript>
+<p>JavaScript is disabled on your browser.</p>
+</noscript>
+<p><a href="index.html">index.html</a></p>
+</main>
+</body>
+</html>
diff --git a/apidocs/3.0.0/overview-tree.html b/apidocs/3.0.0/overview-tree.html
new file mode 100644
index 0000000..6e42425
--- /dev/null
+++ b/apidocs/3.0.0/overview-tree.html
@@ -0,0 +1,384 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="jakarta/ws/rs/package-tree.html">jakarta.ws.rs</a>, </li>
+<li><a href="jakarta/ws/rs/client/package-tree.html">jakarta.ws.rs.client</a>, </li>
+<li><a href="jakarta/ws/rs/container/package-tree.html">jakarta.ws.rs.container</a>, </li>
+<li><a href="jakarta/ws/rs/core/package-tree.html">jakarta.ws.rs.core</a>, </li>
+<li><a href="jakarta/ws/rs/ext/package-tree.html">jakarta.ws.rs.ext</a>, </li>
+<li><a href="jakarta/ws/rs/sse/package-tree.html">jakarta.ws.rs.sse</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Application.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/CacheControl.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">CacheControl</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientBuilder.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> (implements jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core">Configurable</a>&lt;C&gt;)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Cookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Cookie</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NewCookie.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NewCookie</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Entity.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/EntityTag.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">EntityTag</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Form.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Form</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericEntity.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/GenericType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbLink.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MediaType.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">MediaType</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/Priorities.html" title="class in jakarta.ws.rs"><span class="typeNameLink">Priorities</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a>)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.ResponseBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.html" title="class in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.Builder.html" title="class in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">IOException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">NoContentException</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ProcessingException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">WebApplicationException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ClientErrorException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">BadRequestException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ForbiddenException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAllowedException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotFoundException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">NotSupportedException</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">RedirectionException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServerErrorException</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Variant.VariantListBuilder.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a></li>
+<li class="circle">jakarta.xml.bind.annotation.adapters.XmlAdapter&lt;ValueType,&#8203;BoundType&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.JaxbAdapter.html" title="class in jakarta.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/AsyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/AsyncResponse.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">AutoCloseable</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseBroadcaster.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSink.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEventSource.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientRequestFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseContext.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/ClientResponseFilter.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/CompletionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configurable.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Client.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Client</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/FeatureContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/WebTarget.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">WebTarget</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Configuration.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Configuration</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ConnectionCallback.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerRequestFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ContainerResponseFilter.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ContextResolver.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/DynamicFeature.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ExceptionMapper.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;E&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Feature.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Feature</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/HttpHeaders.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/InterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptorContext.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/InvocationCallback.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;RESPONSE&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Link.Builder.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a></li>
+<li class="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">Map</span></a>&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/MultivaluedMap.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyReader.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/MessageBodyWriter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverter.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverterProvider.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/PathSegment.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">PathSegment</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Providers.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">Providers</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ReaderInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Request.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Request</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceContext.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a></li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/ResourceInfo.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;T&gt;
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/CompletionStageRxInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/RxInvokerProvider.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;T&gt;</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/SecurityContext.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/Sse.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">Sse</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/SseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/InboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a></li>
+<li class="circle">jakarta.ws.rs.sse.<a href="jakarta/ws/rs/sse/OutboundSseEvent.html" title="interface in jakarta.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/StreamingOutput.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a></li>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/SyncInvoker.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a>
+<ul>
+<li class="circle">jakarta.ws.rs.client.<a href="jakarta/ws/rs/client/Invocation.Builder.html" title="interface in jakarta.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a></li>
+</ul>
+</li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/TimeoutHandler.html" title="interface in jakarta.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a></li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/UriInfo.html" title="interface in jakarta.ws.rs.core"><span class="typeNameLink">UriInfo</span></a></li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/WriterInterceptor.html" title="interface in jakarta.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ApplicationPath.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/BeanParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">BeanParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/ConstrainedTo.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/Consumes.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Consumes</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Context.html" title="annotation in jakarta.ws.rs.core"><span class="typeNameLink">Context</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/CookieParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">CookieParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/DefaultValue.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DefaultValue</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/DELETE.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">DELETE</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/Encoded.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Encoded</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/FormParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">FormParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/GET.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">GET</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/HEAD.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HEAD</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/HeaderParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HeaderParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/HttpMethod.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">HttpMethod</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/MatrixParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">MatrixParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/NameBinding.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">NameBinding</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/OPTIONS.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">OPTIONS</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/PATCH.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PATCH</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/Path.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Path</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/PathParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/POST.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">POST</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/PreMatching.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/Produces.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">Produces</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.ext.<a href="jakarta/ws/rs/ext/Provider.html" title="annotation in jakarta.ws.rs.ext"><span class="typeNameLink">Provider</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/PUT.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">PUT</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/QueryParam.html" title="annotation in jakarta.ws.rs"><span class="typeNameLink">QueryParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">jakarta.ws.rs.container.<a href="jakarta/ws/rs/container/Suspended.html" title="annotation in jakarta.ws.rs.container"><span class="typeNameLink">Suspended</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> (implements jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.StatusType.html" title="interface in jakarta.ws.rs.core">Response.StatusType</a>)</li>
+<li class="circle">jakarta.ws.rs.core.<a href="jakarta/ws/rs/core/Response.Status.Family.html" title="enum in jakarta.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a></li>
+<li class="circle">jakarta.ws.rs.<a href="jakarta/ws/rs/RuntimeType.html" title="enum in jakarta.ws.rs"><span class="typeNameLink">RuntimeType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/package-search-index.js b/apidocs/3.0.0/package-search-index.js
new file mode 100644
index 0000000..921dae8
--- /dev/null
+++ b/apidocs/3.0.0/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"jakarta.ws.rs"},{"l":"jakarta.ws.rs.client"},{"l":"jakarta.ws.rs.container"},{"l":"jakarta.ws.rs.core"},{"l":"jakarta.ws.rs.ext"},{"l":"jakarta.ws.rs.sse"}]
\ No newline at end of file
diff --git a/apidocs/3.0.0/package-search-index.zip b/apidocs/3.0.0/package-search-index.zip
new file mode 100644
index 0000000..2e8709f
--- /dev/null
+++ b/apidocs/3.0.0/package-search-index.zip
Binary files differ
diff --git a/apidocs/3.0.0/resources/EFSL.html b/apidocs/3.0.0/resources/EFSL.html
new file mode 100644
index 0000000..c222f1b
--- /dev/null
+++ b/apidocs/3.0.0/resources/EFSL.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+    <title>Eclipse Foundation Specification License - v1.0</title>
+</head>
+<body>
+<h1>Eclipse Foundation Specification License - v1.0</h1>
+<p>By using and/or copying this document, or the Eclipse Foundation
+    document from which this statement is linked, you (the licensee) agree
+    that you have read, understood, and will comply with the following
+    terms and conditions:</p>
+
+<p>Permission to copy, and distribute the contents of this document, or
+    the Eclipse Foundation document from which this statement is linked, in
+    any medium for any purpose and without fee or royalty is hereby
+    granted, provided that you include the following on ALL copies of the
+    document, or portions thereof, that you use:</p>
+
+<ul>
+    <li> link or URL to the original Eclipse Foundation document.</li>
+    <li>All existing copyright notices, or if one does not exist, a notice
+        (hypertext is preferred, but a textual representation is permitted)
+        of the form: &quot;Copyright &copy; [$date-of-document]
+        Eclipse Foundation, Inc. &lt;&lt;url to this license&gt;&gt;
+        &quot;
+    </li>
+</ul>
+
+<p>Inclusion of the full text of this NOTICE must be provided. We
+    request that authorship attribution be provided in any software,
+    documents, or other items or products that you create pursuant to the
+    implementation of the contents of this document, or any portion
+    thereof.</p>
+
+<p>No right to create modifications or derivatives of Eclipse Foundation
+    documents is granted pursuant to this license, except anyone may
+    prepare and distribute derivative works and portions of this document
+    in software that implements the specification, in supporting materials
+    accompanying such software, and in documentation of such software,
+    PROVIDED that all such works include the notice below. HOWEVER, the
+    publication of derivative works of this document for use as a technical
+    specification is expressly prohibited.</p>
+
+<p>The notice is:</p>
+
+<p>&quot;Copyright &copy; [$date-of-document] Eclipse Foundation. This software or
+    document includes material copied from or derived from [title and URI
+    of the Eclipse Foundation specification document].&quot;</p>
+
+<h2>Disclaimers</h2>
+
+<p>THIS DOCUMENT IS PROVIDED &quot;AS IS,&quot; AND THE COPYRIGHT
+    HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR
+    WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+    WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+    NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
+    SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS
+    WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
+    OTHER RIGHTS.</p>
+
+<p>THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE
+    FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+    OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
+    CONTENTS THEREOF.</p>
+
+<p>The name and trademarks of the copyright holders or the Eclipse
+    Foundation may NOT be used in advertising or publicity pertaining to
+    this document or its contents without specific, written prior
+    permission. Title to copyright in this document will at all times
+    remain with copyright holders.</p>
+
+</body>
+</html>
diff --git a/apidocs/3.0.0/resources/glass.png b/apidocs/3.0.0/resources/glass.png
new file mode 100644
index 0000000..a7f591f
--- /dev/null
+++ b/apidocs/3.0.0/resources/glass.png
Binary files differ
diff --git a/apidocs/3.0.0/resources/x.png b/apidocs/3.0.0/resources/x.png
new file mode 100644
index 0000000..30548a7
--- /dev/null
+++ b/apidocs/3.0.0/resources/x.png
Binary files differ
diff --git a/apidocs/3.0.0/script.js b/apidocs/3.0.0/script.js
new file mode 100644
index 0000000..0eaaf53
--- /dev/null
+++ b/apidocs/3.0.0/script.js
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+    createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
+    createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
+    if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
+            window.navigator.userAgent.indexOf('Edge/') > 0) {
+        createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
+    }
+    createElem(doc, tag, 'search.js');
+    
+    $.get(pathtoroot + "module-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "package-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "type-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "member-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "tag-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText());
+                });
+            });
+    if (!moduleSearchIndex) {
+        createElem(doc, tag, 'module-search-index.js');
+    }
+    if (!packageSearchIndex) {
+        createElem(doc, tag, 'package-search-index.js');
+    }
+    if (!typeSearchIndex) {
+        createElem(doc, tag, 'type-search-index.js');
+    }
+    if (!memberSearchIndex) {
+        createElem(doc, tag, 'member-search-index.js');
+    }
+    if (!tagSearchIndex) {
+        createElem(doc, tag, 'tag-search-index.js');
+    }
+    $(window).resize(function() {
+        $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+    });
+}
+
+function createElem(doc, tag, path) {
+    var script = doc.createElement(tag);
+    var scriptElement = doc.getElementsByTagName(tag)[0];
+    script.src = pathtoroot + path;
+    scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(type) {
+    count = 0;
+    for (var key in data) {
+        var row = document.getElementById(key);
+        if ((data[key] &  type) !== 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type) {
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
+
+function updateModuleFrame(pFrame, cFrame) {
+    top.packageFrame.location = pFrame;
+    top.classFrame.location = cFrame;
+}
diff --git a/apidocs/3.0.0/search.js b/apidocs/3.0.0/search.js
new file mode 100644
index 0000000..9d3fb81
--- /dev/null
+++ b/apidocs/3.0.0/search.js
@@ -0,0 +1,329 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Types";
+var catMembers = "Members";
+var catSearchTags = "SearchTags";
+var highlight = "<span class=\"resultHighlight\">$&</span>";
+var camelCaseRegexp = "";
+var secondaryMatcher = "";
+function getHighlightedText(item) {
+    var ccMatcher = new RegExp(camelCaseRegexp);
+    var label = item.replace(ccMatcher, highlight);
+    if (label === item) {
+        label = item.replace(secondaryMatcher, highlight);
+    }
+    return label;
+}
+function getURLPrefix(ui) {
+    var urlPrefix="";
+    if (useModuleDirectories) {
+        var slash = "/";
+        if (ui.item.category === catModules) {
+            return ui.item.l + slash;
+        } else if (ui.item.category === catPackages && ui.item.m) {
+            return ui.item.m + slash;
+        } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
+            $.each(packageSearchIndex, function(index, item) {
+                if (ui.item.p == item.l) {
+                    urlPrefix = item.m + slash;
+                }
+            });
+            return urlPrefix;
+        } else {
+            return urlPrefix;
+        }
+    }
+    return urlPrefix;
+}
+var watermark = 'Search';
+$(function() {
+    $("#search").val('');
+    $("#search").prop("disabled", false);
+    $("#reset").prop("disabled", false);
+    $("#search").val(watermark).addClass('watermark');
+    $("#search").blur(function() {
+        if ($(this).val().length == 0) {
+            $(this).val(watermark).addClass('watermark');
+        }
+    });
+    $("#search").on('click keydown', function() {
+        if ($(this).val() == watermark) {
+            $(this).val('').removeClass('watermark');
+        }
+    });
+    $("#reset").click(function() {
+        $("#search").val('');
+        $("#search").focus();
+    });
+    $("#search").focus();
+    $("#search")[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+    _create: function() {
+        this._super();
+        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+    },
+    _renderMenu: function(ul, items) {
+        var rMenu = this,
+                currentCategory = "";
+        $.each(items, function(index, item) {
+            var li;
+            if (item.l !== noResult.l && item.category !== currentCategory) {
+                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
+                currentCategory = item.category;
+            }
+            li = rMenu._renderItemData(ul, item);
+            if (item.category) {
+                li.attr("aria-label", item.category + " : " + item.l);
+                li.attr("class", "resultItem");
+            } else {
+                li.attr("aria-label", item.l);
+                li.attr("class", "resultItem");
+            }
+        });
+    },
+    _renderItem: function(ul, item) {
+        var label = "";
+        if (item.category === catModules) {
+            label = getHighlightedText(item.l);
+        } else if (item.category === catPackages) {
+            label = (item.m)
+                    ? getHighlightedText(item.m + "/" + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catTypes) {
+            label = (item.p)
+                    ? getHighlightedText(item.p + "." + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catMembers) {
+            label = getHighlightedText(item.p + "." + (item.c + "." + item.l));
+        } else if (item.category === catSearchTags) {
+            label = getHighlightedText(item.l);
+        } else {
+            label = item.l;
+        }
+        $li = $("<li/>").appendTo(ul);
+        if (item.category === catSearchTags) {
+            if (item.d) {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span><br><span class=\"searchTagDescResult\">"
+                                + item.d + "</span><br>")
+                        .appendTo($li);
+            } else {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span>")
+                        .appendTo($li);
+            }
+        } else {
+            $("<a/>").attr("href", "#")
+                    .html(label)
+                    .appendTo($li);
+        }
+        return $li;
+    }
+});
+$(function() {
+    $("#search").catcomplete({
+        minLength: 1,
+        delay: 100,
+        source: function(request, response) {
+            var result = new Array();
+            var presult = new Array();
+            var tresult = new Array();
+            var mresult = new Array();
+            var tgresult = new Array();
+            var secondaryresult = new Array();
+            var displayCount = 0;
+            var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i");
+            camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)");
+            var camelCaseMatcher = new RegExp("^" + camelCaseRegexp);
+            secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
+
+            // Return the nested innermost name from the specified object
+            function nestedName(e) {
+                return e.l.substring(e.l.lastIndexOf(".") + 1);
+            }
+
+            function concatResults(a1, a2) {
+                a1 = a1.concat(a2);
+                a2.length = 0;
+                return a1;
+            }
+
+            if (moduleSearchIndex) {
+                var mdleCount = 0;
+                $.each(moduleSearchIndex, function(index, item) {
+                    item.category = catModules;
+                    if (exactMatcher.test(item.l)) {
+                        result.push(item);
+                        mdleCount++;
+                    } else if (camelCaseMatcher.test(item.l)) {
+                        result.push(item);
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                displayCount = mdleCount;
+                result = concatResults(result, secondaryresult);
+            }
+            if (packageSearchIndex) {
+                var pCount = 0;
+                var pkg = "";
+                $.each(packageSearchIndex, function(index, item) {
+                    item.category = catPackages;
+                    pkg = (item.m)
+                            ? (item.m + "/" + item.l)
+                            : item.l;
+                    if (exactMatcher.test(item.l)) {
+                        presult.push(item);
+                        pCount++;
+                    } else if (camelCaseMatcher.test(pkg)) {
+                        presult.push(item);
+                    } else if (secondaryMatcher.test(pkg)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(presult, secondaryresult));
+                displayCount = (pCount > displayCount) ? pCount : displayCount;
+            }
+            if (typeSearchIndex) {
+                var tCount = 0;
+                $.each(typeSearchIndex, function(index, item) {
+                    item.category = catTypes;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        tresult.push(item);
+                        tCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        tresult.push(item);
+                    } else if (secondaryMatcher.test(item.p + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tresult, secondaryresult));
+                displayCount = (tCount > displayCount) ? tCount : displayCount;
+            }
+            if (memberSearchIndex) {
+                var mCount = 0;
+                $.each(memberSearchIndex, function(index, item) {
+                    item.category = catMembers;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        mresult.push(item);
+                        mCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        mresult.push(item);
+                    } else if (secondaryMatcher.test(item.c + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(mresult, secondaryresult));
+                displayCount = (mCount > displayCount) ? mCount : displayCount;
+            }
+            if (tagSearchIndex) {
+                var tgCount = 0;
+                $.each(tagSearchIndex, function(index, item) {
+                    item.category = catSearchTags;
+                    if (exactMatcher.test(item.l)) {
+                        tgresult.push(item);
+                        tgCount++;
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tgresult, secondaryresult));
+                displayCount = (tgCount > displayCount) ? tgCount : displayCount;
+            }
+            displayCount = (displayCount > 500) ? displayCount : 500;
+            var counter = function() {
+                var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0};
+                var f = function(item) {
+                    count[item.category] += 1;
+                    return (count[item.category] <= displayCount);
+                };
+                return f;
+            }();
+            response(result.filter(counter));
+        },
+        response: function(event, ui) {
+            if (!ui.content.length) {
+                ui.content.push(noResult);
+            } else {
+                $("#search").empty();
+            }
+        },
+        autoFocus: true,
+        position: {
+            collision: "flip"
+        },
+        select: function(event, ui) {
+            if (ui.item.l !== noResult.l) {
+                var url = getURLPrefix(ui);
+                if (ui.item.category === catModules) {
+                    if (useModuleDirectories) {
+                        url += "module-summary.html";
+                    } else {
+                        url = ui.item.l + "-summary.html";
+                    }
+                } else if (ui.item.category === catPackages) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else {
+                    url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
+                    }
+                } else if (ui.item.category === catTypes) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.l + ".html";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
+                    }
+                } else if (ui.item.category === catMembers) {
+                    if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.c + ".html" + "#";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
+                    }
+                    if (ui.item.url) {
+                        url += ui.item.url;
+                    } else {
+                        url += ui.item.l;
+                    }
+                } else if (ui.item.category === catSearchTags) {
+                    url += ui.item.u;
+                }
+                if (top !== window) {
+                    parent.classFrame.location = pathtoroot + url;
+                } else {
+                    window.location.href = pathtoroot + url;
+                }
+            }
+        }
+    });
+});
diff --git a/apidocs/3.0.0/serialized-form.html b/apidocs/3.0.0/serialized-form.html
new file mode 100644
index 0000000..0177e13
--- /dev/null
+++ b/apidocs/3.0.0/serialized-form.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Wed Sep 23 17:36:24 GMT 2020 -->
+<title>Serialized Form (jakarta.ws.rs-api 3.0.0 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2020-09-23">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (jakarta.ws.rs-api 3.0.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;jakarta.ws.rs</h2>
+<ul class="blockList">
+<li class="blockList"><a id="jakarta.ws.rs.BadRequestException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/BadRequestException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.BadRequestException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>7264647684649480265L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ClientErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ClientErrorException</a> extends <a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4101970664444907990L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ForbiddenException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/ForbiddenException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ForbiddenException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-2740045367479165061L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.InternalServerErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/InternalServerErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.InternalServerErrorException</a> extends <a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6515710697540553309L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.NotAcceptableException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/NotAcceptableException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.NotAcceptableException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-1476163816796529078L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.NotAllowedException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/NotAllowedException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.NotAllowedException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-586776054369626119L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.NotAuthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/NotAuthorizedException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.NotAuthorizedException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3156040750581929702L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.NotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/NotFoundException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.NotFoundException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6820866117511628388L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.NotSupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/NotSupportedException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.NotSupportedException</a> extends <a href="jakarta/ws/rs/ClientErrorException.html" title="class in jakarta.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8286622745725405656L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ProcessingException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ProcessingException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4232431597816056514L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.RedirectionException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/RedirectionException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.RedirectionException</a> extends <a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-2584325408291098012L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ServerErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ServerErrorException</a> extends <a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>4730895276505569556L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.ServiceUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/ServiceUnavailableException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.ServiceUnavailableException</a> extends <a href="jakarta/ws/rs/ServerErrorException.html" title="class in jakarta.ws.rs">ServerErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>3821068205617492633L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/WebApplicationException.html" title="class in jakarta.ws.rs">jakarta.ws.rs.WebApplicationException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>8273970399584007146L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>response</h4>
+<pre><a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a> response</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;jakarta.ws.rs.client</h2>
+<ul class="blockList">
+<li class="blockList"><a id="jakarta.ws.rs.client.ResponseProcessingException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/client/ResponseProcessingException.html" title="class in jakarta.ws.rs.client">jakarta.ws.rs.client.ResponseProcessingException</a> extends <a href="jakarta/ws/rs/ProcessingException.html" title="class in jakarta.ws.rs">ProcessingException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4923161617935731839L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>response</h4>
+<pre><a href="jakarta/ws/rs/core/Response.html" title="class in jakarta.ws.rs.core">Response</a> response</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;jakarta.ws.rs.core</h2>
+<ul class="blockList">
+<li class="blockList"><a id="jakarta.ws.rs.core.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.AbstractMultivaluedMap</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>store</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt; store</pre>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.core.MultivaluedHashMap">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.MultivaluedHashMap</a> extends <a href="jakarta/ws/rs/core/AbstractMultivaluedMap.html" title="class in jakarta.ws.rs.core">AbstractMultivaluedMap</a>&lt;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="jakarta/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6052320403766368902L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.core.NoContentException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/core/NoContentException.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.NoContentException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3082577759787473245L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="jakarta.ws.rs.core.UriBuilderException">
+<!--   -->
+</a>
+<h3>Class <a href="jakarta/ws/rs/core/UriBuilderException.html" title="class in jakarta.ws.rs.core">jakarta.ws.rs.core.UriBuilderException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>956255913370721193L</dd>
+</dl>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small><p align="left">Copyright &#169; 2018, 2020 Eclipse Foundation.<br>Use is subject to <a href="./resources/EFSL.html" target="_top">license terms</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/3.0.0/stylesheet.css b/apidocs/3.0.0/stylesheet.css
new file mode 100644
index 0000000..fa24676
--- /dev/null
+++ b/apidocs/3.0.0/stylesheet.css
@@ -0,0 +1,906 @@
+/* 
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+}
+iframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+    overflow-y:scroll;
+    border:none;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[href]:hover, a[href]:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:before, a[name]:target, a[id]:before, a[id]:target {
+    content:"";
+    display:inline-block;
+    position:relative;
+    padding-top:129px;
+    margin-top:-129px;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+ * Styles for navigation bar.
+ */
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.navPadding {
+    padding-top: 107px;
+}
+.fixedNav {
+    position:fixed;
+    width:100%;
+    z-index:999;
+    background-color:#ffffff;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch {
+    float:right;
+    margin:0 0 0 0;
+    padding:0;
+}
+ul.navListSearch li {
+    list-style:none;
+    float:right;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch li label {
+    position:relative;
+    right:-16px;
+}
+ul.subNavList li {
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+ * Styles for page header and footer.
+ */
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexNav {
+    position:relative;
+    font-size:12px;
+    background-color:#dee3e9;
+}
+.indexNav ul {
+    margin-top:0;
+    padding:5px;
+}
+.indexNav ul li {
+    display:inline;
+    list-style-type:none;
+    padding-right:10px;
+    text-transform:uppercase;
+}
+.indexNav h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+ * Styles for headings.
+ */
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+ * Styles for page layout containers.
+ */
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
+.allClassesContainer, .allPackagesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+    list-style:circle;
+}
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+ * Styles for tables.
+ */
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
+.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
+    width:100%;
+    border-spacing:0;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
+.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
+.usesSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
+.usesSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
+.usesSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
+.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
+.usesSummary caption a:visited {
+    color:#FFFFFF;
+}
+.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
+.useSummary caption a:visited {
+    color:#1f389c;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
+.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
+.usesSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
+.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
+.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
+.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
+.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
+.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
+.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
+.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
+.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+}
+.rowColor th, .altColor th {
+    font-weight:normal;
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td,
+.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
+.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
+.constantsSummary td {
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
+.packagesSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    font-size:13px;
+}
+td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
+    font-size:13px;
+}
+.constantsSummary th, .packagesSummary th {
+    font-size:13px;
+}
+.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
+.providesSummary td.colLast {
+    white-space:normal;
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.requiresSummary td.colFirst, .requiresSummary th.colFirst,
+.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
+.usesSummary td.colFirst, .usesSummary th.colFirst,
+.providesSummary td.colFirst, .providesSummary th.colFirst,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
+.typeSummary td.colFirst, .typeSummary th.colFirst {
+    vertical-align:top;
+}
+.packagesSummary th.colLast, .packagesSummary td.colLast {
+    white-space:normal;
+}
+td.colFirst a:link, td.colFirst a:visited,
+td.colSecond a:link, td.colSecond a:visited,
+th.colFirst a:link, th.colFirst a:visited,
+th.colSecond a:link, th.colSecond a:visited,
+th.colConstructorName a:link, th.colConstructorName a:visited,
+th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, 
+.constantValuesContainer td a:link, .constantValuesContainer td a:visited, 
+.allClassesContainer td a:link, .allClassesContainer td a:visited, 
+.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor, .altColor th {
+    background-color:#FFFFFF;
+}
+.rowColor, .rowColor th {
+    background-color:#EEEEEF;
+}
+/*
+ * Styles for contents.
+ */
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+td.colLast div {
+    padding-top:0px;
+}
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+ * Styles for formatting effect.
+ */
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
+.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
+.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
+.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+.deprecationBlock {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    border-style:solid;
+    border-width:thin;
+    border-radius:10px;
+    padding:10px;
+    margin-bottom:10px;
+    margin-right:10px;
+    display:inline-block;
+}
+div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+div.contentContainer ul.blockList li.blockList h2 {
+    padding-bottom:0px;
+}
+/*
+ * Styles for IFRAME.
+ */
+.mainContainer {
+    margin:0 auto; 
+    padding:0; 
+    height:100%; 
+    width:100%; 
+    position:fixed; 
+    top:0; 
+    left:0;
+}
+.leftContainer {
+    height:100%;
+    position:fixed;
+    width:320px;
+}
+.leftTop {
+    position:relative;
+    float:left;
+    width:315px;
+    top:0;
+    left:0;
+    height:30%;
+    border-right:6px solid #ccc;
+    border-bottom:6px solid #ccc;
+}
+.leftBottom {
+    position:relative;
+    float:left;
+    width:315px;
+    bottom:0;
+    left:0;
+    height:70%;
+    border-right:6px solid #ccc;
+    border-top:1px solid #000;
+}
+.rightContainer {
+    position:absolute;
+    left:320px;
+    top:0;
+    bottom:0;
+    height:100%;
+    right:0;
+    border-left:1px solid #000;
+}
+.rightIframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    right:30px;
+    width:100%;
+    overflow:visible;
+    margin-bottom:30px;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+    display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+    font-weight:bold;
+    font-size:15px;
+    padding:7px 0 7px 3px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+}
+.resultItem {
+    font-size:13px;
+}
+.ui-autocomplete {
+    max-height:85%;
+    max-width:65%;
+    overflow-y:scroll;
+    overflow-x:scroll;
+    white-space:nowrap;
+    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+    position:fixed;
+    z-index:999999;
+}
+ul.ui-autocomplete  li {
+    float:left;
+    clear:both;
+    width:100%;
+}
+.resultHighlight {
+    font-weight:bold;
+}
+#search {
+    background-image:url('resources/glass.png');
+    background-size:13px;
+    background-repeat:no-repeat;
+    background-position:2px 3px;
+    padding-left:20px;
+    position:relative;
+    right:-18px;
+}
+#reset {
+    background-color: rgb(255,255,255);
+    background-image:url('resources/x.png');
+    background-position:center;
+    background-repeat:no-repeat;
+    background-size:12px;
+    border:0 none;
+    width:16px;
+    height:17px;
+    position:relative;
+    left:-4px;
+    top:-4px;
+    font-size:0px;
+}
+.watermark {
+    color:#545454;
+}
+.searchTagDescResult {
+    font-style:italic;
+    font-size:11px;
+}
+.searchTagHolderResult {
+    font-style:italic;
+    font-size:12px;
+}
+.searchTagResult:before, .searchTagResult:target {
+    color:red;
+}
+.moduleGraph span {
+    display:none;
+    position:absolute;
+}
+.moduleGraph:hover span {
+    display:block;
+    margin: -100px 0 0 100px;
+    z-index: 1;
+}
+.methodSignature {
+    white-space:normal;
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ *      No borders, vertical margins, styled caption.
+ *      This style is provided for use with existing doc comments.
+ *      In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ *      Plain borders around table and cells, vertical margins, styled caption.
+ *      Best for small tables or for complex tables for tables with cells that span
+ *      rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ *      Borders around the table and vertical borders between cells, striped rows,
+ *      vertical margins, styled caption.
+ *      Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+    font-weight: bold;
+    font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+    padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+    border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+    background-color: transparent;
+}
+table.plain {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+    background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+    border: 1px solid black;
+}
+table.striped {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.striped > thead {
+    background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+    border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+    background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+    background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+    border-left: 1px solid black;
+    border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+    font-weight: normal;
+}
diff --git a/apidocs/3.0.0/type-search-index.js b/apidocs/3.0.0/type-search-index.js
new file mode 100644
index 0000000..698612a
--- /dev/null
+++ b/apidocs/3.0.0/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"p":"jakarta.ws.rs.core","l":"AbstractMultivaluedMap"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"jakarta.ws.rs.core","l":"Application"},{"p":"jakarta.ws.rs","l":"ApplicationPath"},{"p":"jakarta.ws.rs.client","l":"AsyncInvoker"},{"p":"jakarta.ws.rs.container","l":"AsyncResponse"},{"p":"jakarta.ws.rs","l":"BadRequestException"},{"p":"jakarta.ws.rs","l":"BeanParam"},{"p":"jakarta.ws.rs.client","l":"Invocation.Builder"},{"p":"jakarta.ws.rs.core","l":"Link.Builder"},{"p":"jakarta.ws.rs.sse","l":"OutboundSseEvent.Builder"},{"p":"jakarta.ws.rs.sse","l":"SseEventSource.Builder"},{"p":"jakarta.ws.rs.core","l":"CacheControl"},{"p":"jakarta.ws.rs.client","l":"Client"},{"p":"jakarta.ws.rs.client","l":"ClientBuilder"},{"p":"jakarta.ws.rs","l":"ClientErrorException"},{"p":"jakarta.ws.rs.client","l":"ClientRequestContext"},{"p":"jakarta.ws.rs.client","l":"ClientRequestFilter"},{"p":"jakarta.ws.rs.client","l":"ClientResponseContext"},{"p":"jakarta.ws.rs.client","l":"ClientResponseFilter"},{"p":"jakarta.ws.rs.container","l":"CompletionCallback"},{"p":"jakarta.ws.rs.client","l":"CompletionStageRxInvoker"},{"p":"jakarta.ws.rs.core","l":"Configurable"},{"p":"jakarta.ws.rs.core","l":"Configuration"},{"p":"jakarta.ws.rs.container","l":"ConnectionCallback"},{"p":"jakarta.ws.rs","l":"ConstrainedTo"},{"p":"jakarta.ws.rs","l":"Consumes"},{"p":"jakarta.ws.rs.container","l":"ContainerRequestContext"},{"p":"jakarta.ws.rs.container","l":"ContainerRequestFilter"},{"p":"jakarta.ws.rs.container","l":"ContainerResponseContext"},{"p":"jakarta.ws.rs.container","l":"ContainerResponseFilter"},{"p":"jakarta.ws.rs.core","l":"Context"},{"p":"jakarta.ws.rs.ext","l":"ContextResolver"},{"p":"jakarta.ws.rs.core","l":"Cookie"},{"p":"jakarta.ws.rs","l":"CookieParam"},{"p":"jakarta.ws.rs","l":"DefaultValue"},{"p":"jakarta.ws.rs","l":"DELETE"},{"p":"jakarta.ws.rs.container","l":"DynamicFeature"},{"p":"jakarta.ws.rs","l":"Encoded"},{"p":"jakarta.ws.rs.client","l":"Entity"},{"p":"jakarta.ws.rs.core","l":"EntityTag"},{"p":"jakarta.ws.rs.ext","l":"ExceptionMapper"},{"p":"jakarta.ws.rs.core","l":"Response.Status.Family"},{"p":"jakarta.ws.rs.core","l":"Feature"},{"p":"jakarta.ws.rs.core","l":"FeatureContext"},{"p":"jakarta.ws.rs","l":"ForbiddenException"},{"p":"jakarta.ws.rs.core","l":"Form"},{"p":"jakarta.ws.rs","l":"FormParam"},{"p":"jakarta.ws.rs.core","l":"GenericEntity"},{"p":"jakarta.ws.rs.core","l":"GenericType"},{"p":"jakarta.ws.rs","l":"GET"},{"p":"jakarta.ws.rs","l":"HEAD"},{"p":"jakarta.ws.rs.ext","l":"RuntimeDelegate.HeaderDelegate"},{"p":"jakarta.ws.rs","l":"HeaderParam"},{"p":"jakarta.ws.rs.core","l":"HttpHeaders"},{"p":"jakarta.ws.rs","l":"HttpMethod"},{"p":"jakarta.ws.rs.sse","l":"InboundSseEvent"},{"p":"jakarta.ws.rs.ext","l":"InterceptorContext"},{"p":"jakarta.ws.rs","l":"InternalServerErrorException"},{"p":"jakarta.ws.rs.client","l":"Invocation"},{"p":"jakarta.ws.rs.client","l":"InvocationCallback"},{"p":"jakarta.ws.rs.core","l":"Link.JaxbAdapter"},{"p":"jakarta.ws.rs.core","l":"Link.JaxbLink"},{"p":"jakarta.ws.rs.ext","l":"ParamConverter.Lazy"},{"p":"jakarta.ws.rs.core","l":"Link"},{"p":"jakarta.ws.rs","l":"MatrixParam"},{"p":"jakarta.ws.rs.core","l":"MediaType"},{"p":"jakarta.ws.rs.ext","l":"MessageBodyReader"},{"p":"jakarta.ws.rs.ext","l":"MessageBodyWriter"},{"p":"jakarta.ws.rs.core","l":"MultivaluedHashMap"},{"p":"jakarta.ws.rs.core","l":"MultivaluedMap"},{"p":"jakarta.ws.rs","l":"NameBinding"},{"p":"jakarta.ws.rs.core","l":"NewCookie"},{"p":"jakarta.ws.rs.core","l":"NoContentException"},{"p":"jakarta.ws.rs","l":"NotAcceptableException"},{"p":"jakarta.ws.rs","l":"NotAllowedException"},{"p":"jakarta.ws.rs","l":"NotAuthorizedException"},{"p":"jakarta.ws.rs","l":"NotFoundException"},{"p":"jakarta.ws.rs","l":"NotSupportedException"},{"p":"jakarta.ws.rs","l":"OPTIONS"},{"p":"jakarta.ws.rs.sse","l":"OutboundSseEvent"},{"p":"jakarta.ws.rs.ext","l":"ParamConverter"},{"p":"jakarta.ws.rs.ext","l":"ParamConverterProvider"},{"p":"jakarta.ws.rs","l":"PATCH"},{"p":"jakarta.ws.rs","l":"Path"},{"p":"jakarta.ws.rs","l":"PathParam"},{"p":"jakarta.ws.rs.core","l":"PathSegment"},{"p":"jakarta.ws.rs","l":"POST"},{"p":"jakarta.ws.rs.container","l":"PreMatching"},{"p":"jakarta.ws.rs","l":"Priorities"},{"p":"jakarta.ws.rs","l":"ProcessingException"},{"p":"jakarta.ws.rs","l":"Produces"},{"p":"jakarta.ws.rs.ext","l":"Provider"},{"p":"jakarta.ws.rs.ext","l":"Providers"},{"p":"jakarta.ws.rs","l":"PUT"},{"p":"jakarta.ws.rs","l":"QueryParam"},{"p":"jakarta.ws.rs.ext","l":"ReaderInterceptor"},{"p":"jakarta.ws.rs.ext","l":"ReaderInterceptorContext"},{"p":"jakarta.ws.rs","l":"RedirectionException"},{"p":"jakarta.ws.rs.core","l":"Request"},{"p":"jakarta.ws.rs.container","l":"ResourceContext"},{"p":"jakarta.ws.rs.container","l":"ResourceInfo"},{"p":"jakarta.ws.rs.core","l":"Response"},{"p":"jakarta.ws.rs.core","l":"Response.ResponseBuilder"},{"p":"jakarta.ws.rs.client","l":"ResponseProcessingException"},{"p":"jakarta.ws.rs.ext","l":"RuntimeDelegate"},{"p":"jakarta.ws.rs","l":"RuntimeType"},{"p":"jakarta.ws.rs.client","l":"RxInvoker"},{"p":"jakarta.ws.rs.client","l":"RxInvokerProvider"},{"p":"jakarta.ws.rs.core","l":"SecurityContext"},{"p":"jakarta.ws.rs","l":"ServerErrorException"},{"p":"jakarta.ws.rs","l":"ServiceUnavailableException"},{"p":"jakarta.ws.rs.sse","l":"Sse"},{"p":"jakarta.ws.rs.sse","l":"SseBroadcaster"},{"p":"jakarta.ws.rs.sse","l":"SseEvent"},{"p":"jakarta.ws.rs.sse","l":"SseEventSink"},{"p":"jakarta.ws.rs.sse","l":"SseEventSource"},{"p":"jakarta.ws.rs.core","l":"Response.Status"},{"p":"jakarta.ws.rs.core","l":"Response.StatusType"},{"p":"jakarta.ws.rs.core","l":"StreamingOutput"},{"p":"jakarta.ws.rs.container","l":"Suspended"},{"p":"jakarta.ws.rs.client","l":"SyncInvoker"},{"p":"jakarta.ws.rs.container","l":"TimeoutHandler"},{"p":"jakarta.ws.rs.core","l":"UriBuilder"},{"p":"jakarta.ws.rs.core","l":"UriBuilderException"},{"p":"jakarta.ws.rs.core","l":"UriInfo"},{"p":"jakarta.ws.rs.core","l":"Variant"},{"p":"jakarta.ws.rs.core","l":"Variant.VariantListBuilder"},{"p":"jakarta.ws.rs","l":"WebApplicationException"},{"p":"jakarta.ws.rs.client","l":"WebTarget"},{"p":"jakarta.ws.rs.ext","l":"WriterInterceptor"},{"p":"jakarta.ws.rs.ext","l":"WriterInterceptorContext"}]
\ No newline at end of file
diff --git a/apidocs/3.0.0/type-search-index.zip b/apidocs/3.0.0/type-search-index.zip
new file mode 100644
index 0000000..64bc375
--- /dev/null
+++ b/apidocs/3.0.0/type-search-index.zip
Binary files differ
