This is an automated email from the ASF dual-hosted git repository.

paksyd pushed a commit to branch asf-site-staging
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site-staging by this push:
     new fd05801a1c8 HBASE-29689 Update new website with latest improvements
fd05801a1c8 is described below

commit fd05801a1c8545fe712ae17d76ddab1b0d1afb51
Author: Dávid Paksy <[email protected]>
AuthorDate: Mon Nov 10 16:11:33 2025 +0100

    HBASE-29689 Update new website with latest improvements
---
 __spa-fallback.html                  |  10 +--
 acid-semantics/index.html            |  15 ++--
 assets/acid-semantics-CYo_TaA9.js    | 127 ++++++++++++++++++++++++++++++
 assets/app-BzlgZNf1.css              |   1 +
 assets/code-of-conduct-CJPklNRV.js   |  44 +++++++++++
 assets/downloads-BRAGpK9n.js         |  45 +++++++++++
 assets/mailing-lists-doDVBa9G.js     |  32 ++++++++
 assets/manifest-339485e6.js          |   1 +
 assets/root-CPpn2GwT.js              |  75 ++++++++++++++++++
 assets/source-repository-D7Xzv9nd.js |  53 +++++++++++++
 assets/sponsors-D__nLzUg.js          |  35 +++++++++
 assets/team-7qd-tD0H.js              | 147 +++++++++++++++++++++++++++++++++++
 code-of-conduct/index.html           |  13 ++--
 downloads/index.html                 |  13 ++--
 fonts/inter-latin-wght-italic.woff2  | Bin 0 -> 51832 bytes
 fonts/inter-latin-wght-normal.woff2  | Bin 0 -> 48256 bytes
 index.html                           |  10 +--
 mailing-lists/index.html             |  13 ++--
 news/index.html                      |  10 +--
 other-resources/index.html           |  10 +--
 powered-by-hbase/index.html          |  10 +--
 source-repository/index.html         |  13 ++--
 sponsors/index.html                  |  13 ++--
 team/index.html                      |  13 ++--
 24 files changed, 635 insertions(+), 68 deletions(-)

diff --git a/__spa-fallback.html b/__spa-fallback.html
index a8f5c138ae5..0562736df64 100644
--- a/__spa-fallback.html
+++ b/__spa-fallback.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><link 
rel="modulepreload" href="/assets/manifest-a00575a7.js"/><link 
rel="modulepreload" href="/assets/entry.client-D-YQWBLI.js"/><link 
rel="modulepreload" href="/ass [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel="prefetch" as="font" 
href="/fonts/inter-latin-wght-italic.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel="modulepreload" 
href="/assets/manifest-339485e6.js"/><link rel [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,16 +12,16 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
               console.log(
                 "💿 Hey developer 👋. You can provide a way better UX than this 
" +
                 "when your app is loading JS modules and/or running 
`clientLoader` " +
                 "functions. Check out 
https://reactrouter.com/start/framework/route-module#hydratefallback " +
                 "for more information."
               );
-            </script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+            </script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
   
   window.__reactRouterRouteModules = {"root":route0};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
diff --git a/acid-semantics/index.html b/acid-semantics/index.html
index 2d63a064581..a8bc3415794 100644
--- a/acid-semantics/index.html
+++ b/acid-semantics/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics - 
Apache HBase</title><meta name="description" content="Apache HBase ACID 
properties and guarantees specification."/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><link 
rel="modulepreload" h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics - 
Apache HBase</title><meta name="description" content="Apache HBase ACID 
properties and guarantees specification."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-l 
[...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">ACID properties of HBase</h1>
 <p class="mb-4 text-base leading-7">Apache HBase (TM) is not an ACID compliant 
database. However, it does guarantee certain specific properties.</p>
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">Definitions</h2>
 <p class="mb-4 text-base leading-7">For the sake of common vocabulary, we 
define the following terms:</p>
@@ -114,7 +115,7 @@ an update is considered visible if any subsequent read will 
see the update as ha
 <li class="leading-7">Durability may be tuned to only flush data to disk on a 
periodic basis</li>
 </ul>
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">More Information</h2>
-<p class="mb-4 text-base leading-7">For more information, see the <a 
class="text-primary underline-offset-4 hover:underline" 
href="/acid-semantics/book.html#client" data-discover="true">client 
architecture</a> or <a class="text-primary underline-offset-4 hover:underline" 
href="/acid-semantics/book.html#datamodel" data-discover="true">data model</a> 
sections in the Apache HBase Reference Guide.</p>
+<p class="mb-4 text-base leading-7">For more information, see the <a 
class="text-primary underline-offset-4 hover:underline" 
href="https://hbase.apache.org/book.html#client";>client architecture</a> or <a 
class="text-primary underline-offset-4 hover:underline" 
href="https://hbase.apache.org/book.html#datamodel";>data model</a> sections in 
the Apache HBase Reference Guide.</p>
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">Footnotes</h2>
 <p class="mb-4 text-base leading-7">[1] A consistent view is not guaranteed 
intra-row scanning -- i.e. fetching a portion of a row in one RPC then going 
back to fetch another portion of the row in a subsequent RPC. Intra-row 
scanning happens when you set a limit on how many values to return per 
Scan#next (See <a 
href="http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int)"
 target="_blank" rel="noopener noreferrer" class="text-primary inline 
underline-of [...]
 <p class="mb-4 text-base leading-7">[2] In the context of Apache HBase, 
&quot;durably on disk&quot; implies an hflush() call on the transaction log. 
This does not actually imply an fsync() to magnetic media, but rather just that 
the data has been written to the OS cache on all replicas of the log. In the 
case of a full datacenter power loss, it is possible that the edits are not 
truly durable.</p>
@@ -133,11 +134,11 @@ an update is considered visible if any subsequent read 
will see the update as ha
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/acid-semantics-uL_sMrFF.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/acid-semantics-CYo_TaA9.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/acid-semantics":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/assets/acid-semantics-CYo_TaA9.js 
b/assets/acid-semantics-CYo_TaA9.js
new file mode 100644
index 00000000000..4ead2d45471
--- /dev/null
+++ b/assets/acid-semantics-CYo_TaA9.js
@@ -0,0 +1,127 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# ACID properties of HBase
+
+Apache HBase (TM) is not an ACID compliant database. However, it does 
guarantee certain specific properties.
+
+## Definitions
+
+For the sake of common vocabulary, we define the following terms:
+
+**Atomicity**  
+an operation is atomic if it either completes entirely or not at all
+
+**Consistency**  
+all actions cause the table to transition from one valid state directly to 
another (eg a row will not disappear during an update, etc)
+
+**Isolation**  
+an operation is isolated if it appears to complete independently of any other 
concurrent transaction
+
+**Durability**  
+any update that reports "successful" to the client will not be lost
+
+**Visibility**  
+an update is considered visible if any subsequent read will see the update as 
having been committed
+
+The terms _must_ and _may_ are used as specified by RFC 2119. In short, the 
word "must" implies that, if some case exists where the statement is not true, 
it is a bug. The word "may" implies that, even if the guarantee is provided in 
a current release, users should not rely on it.
+
+## APIs to consider
+
+- Read APIs
+  - get
+  - scan
+- Write APIs
+  - put
+  - batch put
+  - delete
+- Combination (read-modify-write) APIs
+  - incrementColumnValue
+  - checkAndPut
+
+## Guarantees Provided
+
+### Atomicity
+
+1. All mutations are atomic within a row. Any put will either wholly succeed 
or wholly fail.[3]
+   1. An operation that returns a "success" code has completely succeeded.
+   2. An operation that returns a "failure" code has completely failed.
+   3. An operation that times out may have succeeded and may have failed. 
However, it will not have partially succeeded or failed.
+2. This is true even if the mutation crosses multiple column families within a 
row.
+3. APIs that mutate several rows will _not_ be atomic across the multiple 
rows. For example, a multiput that operates on rows 'a','b', and 'c' may return 
having mutated some but not all of the rows. In such cases, these APIs will 
return a list of success codes, each of which may be succeeded, failed, or 
timed out as described above.
+4. The checkAndPut API happens atomically like the typical compareAndSet (CAS) 
operation found in many hardware architectures.
+5. The order of mutations is seen to happen in a well-defined order for each 
row, with no interleaving. For example, if one writer issues the mutation 
"a=1,b=1,c=1" and another writer issues the mutation "a=2,b=2,c=2", the row 
must either be "a=1,b=1,c=1" or "a=2,b=2,c=2" and must _not_ be something like 
"a=1,b=2,c=1".
+   1. Please note that this is not true _across rows_ for multirow batch 
mutations.
+
+### Consistency and Isolation
+
+1. All rows returned via any access API will consist of a complete row that 
existed at some point in the table's history.
+2. This is true across column families - i.e a get of a full row that occurs 
concurrent with some mutations 1,2,3,4,5 will return a complete row that 
existed at some point in time between mutation i and i+1 for some i between 1 
and 5.
+3. The state of a row will only move forward through the history of edits to 
it.
+
+#### Consistency of Scans
+
+A scan is **not** a consistent view of a table. Scans do **not** exhibit 
_snapshot isolation_.
+
+Rather, scans have the following properties:
+
+1. Any row returned by the scan will be a consistent view (i.e. that version 
of the complete row existed at some point in time) [1]
+2. A scan will always reflect a view of the data _at least as new as_ the 
beginning of the scan. This satisfies the visibility guarantees enumerated 
below.
+   1. For example, if client A writes data X and then communicates via a side 
channel to client B, any scans started by client B will contain data at least 
as new as X.
+   2. A scan _must_ reflect all mutations committed prior to the construction 
of the scanner, and _may_ reflect some mutations committed subsequent to the 
construction of the scanner.
+   3. Scans must include _all_ data written prior to the scan (except in the 
case where data is subsequently mutated, in which case it _may_ reflect the 
mutation)
+
+Those familiar with relational databases will recognize this isolation level 
as "read committed".
+
+Please note that the guarantees listed above regarding scanner consistency are 
referring to "transaction commit time", not the "timestamp" field of each cell. 
That is to say, a scanner started at time _t_ may see edits with a timestamp 
value greater than _t_, if those edits were committed with a "forward dated" 
timestamp before the scanner was constructed.
+
+### Visibility
+
+1. When a client receives a "success" response for any mutation, that mutation 
is immediately visible to both that client and any client with whom it later 
communicates through side channels. [3]
+2. A row must never exhibit so-called "time-travel" properties. That is to 
say, if a series of mutations moves a row sequentially through a series of 
states, any sequence of concurrent reads will return a subsequence of those 
states.
+   1. For example, if a row's cells are mutated using the 
"incrementColumnValue" API, a client must never see the value of any cell 
decrease.
+   2. This is true regardless of which read API is used to read back the 
mutation.
+3. Any version of a cell that has been returned to a read operation is 
guaranteed to be durably stored.
+
+### Durability
+
+1. All visible data is also durable data. That is to say, a read will never 
return data that has not been made durable on disk[2]
+2. Any operation that returns a "success" code (eg does not throw an 
exception) will be made durable.[3]
+3. Any operation that returns a "failure" code will not be made durable 
(subject to the Atomicity guarantees above)
+4. All reasonable failure scenarios will not affect any of the guarantees of 
this document.
+
+### Tunability
+
+All of the above guarantees must be possible within Apache HBase. For users 
who would like to trade off some guarantees for performance, HBase may offer 
several tuning options. For example:
+
+- Visibility may be tuned on a per-read basis to allow stale reads or time 
travel.
+- Durability may be tuned to only flush data to disk on a periodic basis
+
+## More Information
+
+For more information, see the [client 
architecture](https://hbase.apache.org/book.html#client) or [data 
model](https://hbase.apache.org/book.html#datamodel) sections in the Apache 
HBase Reference Guide.
+
+## Footnotes
+
+[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a 
portion of a row in one RPC then going back to fetch another portion of the row 
in a subsequent RPC. Intra-row scanning happens when you set a limit on how 
many values to return per Scan#next (See 
[Scan#setBatch(int)](http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int))).
+
+[2] In the context of Apache HBase, "durably on disk" implies an hflush() call 
on the transaction log. This does not actually imply an fsync() to magnetic 
media, but rather just that the data has been written to the OS cache on all 
replicas of the log. In the case of a full datacenter power loss, it is 
possible that the edits are not truly durable.
+
+[3] Puts will either wholly succeed or wholly fail, provided that they are 
actually sent to the RegionServer. If the writebuffer is used, Puts will not be 
sent until the writebuffer is filled or it is explicitly flushed.
+
+`;function i(){return e.jsx(n,{children:a})}function h({}){return[{title:"ACID 
Semantics - Apache HBase"},{name:"description",content:"Apache HBase ACID 
properties and guarantees specification."}]}const u=t(function(){return 
e.jsx(i,{})});export{u as default,h as meta};
diff --git a/assets/app-BzlgZNf1.css b/assets/app-BzlgZNf1.css
new file mode 100644
index 00000000000..9e4e43e450d
--- /dev/null
+++ b/assets/app-BzlgZNf1.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer 
properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) 
or ((-moz-orient:inline) and (not (color:rgb(from red r g 
b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style
 [...]
diff --git a/assets/code-of-conduct-CJPklNRV.js 
b/assets/code-of-conduct-CJPklNRV.js
new file mode 100644
index 00000000000..d09a0cb9e02
--- /dev/null
+++ b/assets/code-of-conduct-CJPklNRV.js
@@ -0,0 +1,44 @@
+import{p as e,w as n}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 i=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Code of Conduct
+
+## Policy
+
+We expect participants in discussions on the HBase project mailing lists, IRC 
channels, and JIRA issues to abide by the Apache Software Foundation's [Code of 
Conduct](http://apache.org/foundation/policies/conduct.html).
+
+If you feel there has been a violation of this code, please point out your 
concerns publicly in a friendly and matter of fact manner. Nonverbal 
communication is prone to misinterpretation and misunderstanding. Everyone has 
bad days and sometimes says things they regret later. Someone else's 
communication style may clash with yours, but the difference can be amicably 
resolved. After pointing out your concerns please be generous upon receiving an 
apology.
+
+Should there be repeated instances of code of conduct violations, or if there 
is an obvious and severe violation, the HBase PMC may become involved. When 
this happens the PMC will openly discuss the matter, most likely on the 
dev@hbase mailing list, and will consider taking the following actions, in 
order, if there is a continuing problem with an individual:
+
+1. A friendly off-list warning;
+2. A friendly public warning, if the communication at issue was on list, 
otherwise another off-list warning;
+3. A three month suspension from the public mailing lists and possible 
operator action in the IRC channels.
+4. A permanent ban from the public mailing lists, IRC channels, and project 
JIRA.
+
+For flagrant violations requiring a firm response the PMC may opt to skip 
early steps. No action will be taken before public discussion leading to 
consensus or a successful majority vote.
+
+## Diversity Statement
+
+As a project and a community, we encourage you to participate in the HBase 
project in whatever capacity suits you, whether it involves development, 
documentation, answering questions on mailing lists, triaging issue and patch 
review, managing releases, or any other way that you want to help. We 
appreciate your contributions and the time you dedicate to the HBase project. 
We strive to recognize the work of participants publicly. Please let us know if 
we can improve in this area.
+
+We value diversity and strive to support participation by people with all 
different backgrounds. Rich projects grow from groups with different points of 
view and different backgrounds. We welcome your suggestions about how we can 
welcome participation by people at all skill levels and with all aspects of the 
project.
+
+If you can think of something we are doing that we shouldn't, or something 
that we should do but aren't, please let us know. If you feel comfortable doing 
so, use the public mailing lists. Otherwise, reach out to a PMC member or send 
an email to [the private PMC mailing list](mailto:[email protected]).
+
+`;function o(){return e.jsx(t,{children:i})}function h({}){return[{title:"Code 
of Conduct - Apache HBase"},{name:"description",content:"Code of Conduct and 
Diversity Statement for the Apache HBase project community."}]}const 
u=n(function(){return e.jsx(o,{})});export{u as default,h as meta};
diff --git a/assets/downloads-BRAGpK9n.js b/assets/downloads-BRAGpK9n.js
new file mode 100644
index 00000000000..7b04828004d
--- /dev/null
+++ b/assets/downloads-BRAGpK9n.js
@@ -0,0 +1,45 @@
+import{p as a,w as e}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
s}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Downloads
+
+The below table lists mirrored release artifacts and their associated hashes 
and signatures available ONLY at apache.org. The keys used to sign releases can 
be found in our published [KEYS](https://downloads.apache.org/hbase/KEYS) file. 
See [Verify The Integrity Of The 
Files](https://www.apache.org/dyn/closer.cgi#verify) for how to verify your 
mirrored downloads.
+
+## Releases
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | 
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 3.0.0-beta-1 | 2024/01/14 | [3.0.0-beta-1 vs 
2.0.0](https://downloads.apache.org/hbase/3.0.0-beta-1/api_compare_2.0.0_to_3.0.0-beta-1RC0.html)
 | [Changes](https://downloads.apache.org/hbase/3.0.0-beta-1/CHANGES.md) | 
[Release 
Notes](https://downloads.apache.org/hbase/3.0.0-beta-1/RELEASENOTES.md) | 
[src](https://www.apache.org/dyn/closer.lua/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz)
 
([sha512](https://downloads.apache.org/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz.sha512)
  [...]
+| 2.6.3 | 2025/07/15 | [2.6.2 vs 
2.6.3](https://downloads.apache.org/hbase/2.6.3/api_compare_2.6.2_to_2.6.3RC2.html)
 | [Changes](https://downloads.apache.org/hbase/2.6.3/CHANGES.md) | [Release 
Notes](https://downloads.apache.org/hbase/2.6.3/RELEASENOTES.md) | 
[src](https://www.apache.org/dyn/closer.lua/hbase/2.6.3/hbase-2.6.3-src.tar.gz) 
([sha512](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz.sha512)
 [asc](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz. [...]
+| 2.5.12 | 2025/07/24 | [2.5.12 vs 
2.5.11](https://downloads.apache.org/hbase/2.5.12/api_compare_2.5.11_to_2.5.12RC0.html)
 | [Changes](https://downloads.apache.org/hbase/2.5.12/CHANGES.md) | [Release 
Notes](https://downloads.apache.org/hbase/2.5.12/RELEASENOTES.md) | 
[src](https://www.apache.org/dyn/closer.lua/hbase/2.5.12/hbase-2.5.12-src.tar.gz)
 
([sha512](https://downloads.apache.org/hbase/2.5.12/hbase-2.5.12-src.tar.gz.sha512)
 [asc](https://downloads.apache.org/hbase/2.5.12/hbase-2.5. [...]
+
+## Connectors
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | 
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.0.1 | 2023/10/27 | | 
[Changes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/CHANGELOG.md)
 | [Release 
Notes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/RELEASENOTES.md)
 | 
[src](https://www.apache.org/dyn/closer.lua/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz)
 
([sha512](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz.sha512)
 [asc](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-co [...]
+
+## HBase Operator Tools
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes | 
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.2.0 | 2021/12/24 | | 
[Changes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/CHANGES.md)
 | [Release 
Notes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/RELEASENOTES.md)
 | 
[src](https://www.apache.org/dyn/closer.lua/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz)
 
([sha512](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz.sha512)
 [asc](https://downloads.apache.org/hbase/hbase-ope [...]
+
+If you are looking for an old release that is not present here or on the 
mirror, check the [Apache Archive](https://archive.apache.org/dist/hbase/).
+
+`;function t(){return a.jsx(s,{children:o})}function 
p({}){return[{title:"Downloads - Apache 
HBase"},{name:"description",content:"Download Apache HBase releases, 
connectors, and operator tools with verification hashes and 
signatures."}]}const i=e(function(){return a.jsx(t,{})});export{i as default,p 
as meta};
diff --git a/assets/mailing-lists-doDVBa9G.js b/assets/mailing-lists-doDVBa9G.js
new file mode 100644
index 00000000000..f19d9c6255f
--- /dev/null
+++ b/assets/mailing-lists-doDVBa9G.js
@@ -0,0 +1,32 @@
+import{p as e,w as s}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
i}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Apache HBase™ Mailing Lists
+
+For each list, links are provided to subscribe, unsubscribe, and view archives.
+
+| Name | Subscribe | Unsubscribe | Post | Archive | Other Archives |
+|------|-----------|-------------|------|---------|----------------|
+| User List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | 
[Post](mailto:[email protected]) | 
[lists.apache.org](https://lists.apache.org/[email protected]) | 
[dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user) |
+| Developer List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | 
[Post](mailto:[email protected]) | 
[lists.apache.org](https://lists.apache.org/[email protected]) | 
[dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel) |
+| Commits List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | - | 
[lists.apache.org](https://lists.apache.org/[email protected]) 
| - |
+| Issues List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | - | 
[lists.apache.org](https://lists.apache.org/[email protected]) 
| - |
+| Builds List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | - | 
[lists.apache.org](https://lists.apache.org/[email protected]) 
| - |
+| User (ZH) List | [Subscribe](mailto:[email protected]) | 
[Unsubscribe](mailto:[email protected]) | 
[Post](mailto:[email protected]) | 
[lists.apache.org](https://lists.apache.org/[email protected]) 
| - |
+
+`;function t(){return e.jsx(i,{children:a})}function 
b({}){return[{title:"Mailing Lists - Apache 
HBase"},{name:"description",content:"Subscribe to Apache HBase mailing lists 
including user, developer, commits, issues, and builds lists."}]}const 
u=s(function(){return e.jsx(t,{})});export{u as default,b as meta};
diff --git a/assets/manifest-339485e6.js b/assets/manifest-339485e6.js
new file mode 100644
index 00000000000..a2f9346ba65
--- /dev/null
+++ b/assets/manifest-339485e6.js
@@ -0,0 +1 @@
+window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-D-YQWBLI.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasErrorBoundary":true,"module":"/assets/root-CPpn2GwT.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js","/assets/button-DZJtN4v4.js","/ass
 [...]
\ No newline at end of file
diff --git a/assets/root-CPpn2GwT.js b/assets/root-CPpn2GwT.js
new file mode 100644
index 00000000000..62d3ed8b51f
--- /dev/null
+++ b/assets/root-CPpn2GwT.js
@@ -0,0 +1,75 @@
+import{p as s,L as I,a as c,R as he,q as Fo,w as $o,t as Bo,M as Wo,v as Ho,S 
as zo,x as Uo,O as Vo,i as Go}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{c as 
V,B as qn}from"./button-DZJtN4v4.js";import{a as Gt,R as 
Ko}from"./index-CzkX0Xv9.js";import{c as 
ht}from"./createLucideIcon-2kDJI1LL.js";import{E as 
z}from"./external-link-BRT3Rnas.js";const 
Yo="/assets/app-BzlgZNf1.css",We=[{label:"Overview",to:"/"},{label:"Downloads",to:"/downloads"},{label:"Mailing
 Lists",to:"/mailing-lists"},{labe [...]
+  .`.concat(yi,` {
+   overflow: hidden `).concat(r,`;
+   padding-right: `).concat(l,"px ").concat(r,`;
+  }
+  body[`).concat(Ce,`] {
+    overflow: hidden `).concat(r,`;
+    overscroll-behavior: contain;
+    `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
+    padding-left: `.concat(o,`px;
+    padding-top: `).concat(a,`px;
+    padding-right: `).concat(i,`px;
+    margin-left:0;
+    margin-top:0;
+    margin-right: `).concat(l,"px ").concat(r,`;
+    `),n==="padding"&&"padding-right: ".concat(l,"px 
").concat(r,";")].filter(Boolean).join(""),`
+  }
+  
+  .`).concat(ot,` {
+    right: `).concat(l,"px ").concat(r,`;
+  }
+  
+  .`).concat(st,` {
+    margin-right: `).concat(l,"px ").concat(r,`;
+  }
+  
+  .`).concat(ot," .").concat(ot,` {
+    right: 0 `).concat(r,`;
+  }
+  
+  .`).concat(st," .").concat(st,` {
+    margin-right: 0 `).concat(r,`;
+  }
+  
+  body[`).concat(Ce,`] {
+    `).concat(Ci,": ").concat(l,`px;
+  }
+`)},$n=function(){var 
e=parseInt(document.body.getAttribute(Ce)||"0",10);return 
isFinite(e)?e:0},Wi=function(){c.useEffect(function(){return 
document.body.setAttribute(Ce,($n()+1).toString()),function(){var 
e=$n()-1;e<=0?document.body.removeAttribute(Ce):document.body.setAttribute(Ce,e.toString())}},[])},Hi=function(e){var
 t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Wi();var 
a=c.useMemo(function(){return Fi(o)},[o]);return 
c.createElement($i,{styles:Bi(a,!t,o,n?"": [...]
+  .block-interactivity-`.concat(e,` {pointer-events: none;}
+  .allow-interactivity-`).concat(e,` {pointer-events: all;}
+`)},Ji=0,be=[];function Qi(e){var 
t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Ji++)[0],a=c.useState(Wr)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var
 m=bi([e.lockRef.current],(e.shards||[]).map(Hn),!0).filter(Boolean);return 
m.forEach(function(w){return 
w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interacti
 [...]
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Pe=ht("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Z=ht("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const yl=ht("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 
1-9-9Z",key:"a7tn18"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const 
Cl=ht("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 
2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 
1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 
1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 
12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 
1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 
1.41",key:"1shlcs"}]]);function dn({...e}){return 
s.jsx(fl,{"data-slot":"dropdown-menu",...e})}fu [...]
+              (function() {
+                const theme = localStorage.getItem('theme');
+                const root = document.documentElement;
+                root.classList.remove('light', 'dark');
+                
+                if (theme && ['light', 'dark'].includes(theme)) {
+                  root.classList.add(theme);
+                } else {
+                  const systemTheme = 
window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
+                  root.classList.add(systemTheme);
+                  localStorage.setItem('theme', systemTheme);
+                }
+              })();
+            
`}}),s.jsx("noscript",{children:s.jsx("style",{children:".theme-toggle-wrapper 
{ display: none !important; 
}"})})]}),s.jsx("body",{className:"font-base",children:s.jsxs(Ml,{defaultTheme:"light",children:[s.jsx(Ol,{}),e,s.jsx(zo,{}),s.jsx(Uo,{}),s.jsx(Hl,{}),s.jsx(Zo,{})]})})]})}const
 ql=$o(function(){return s.jsx(Vo,{})}),Zl=Bo(function({error:t}){let 
n="Oops!",r="An unexpected error occurred.",o;return 
Go(t)&&(n=t.status===404?"404":"Error",r=t.status===404?"The requested pa [...]
diff --git a/assets/source-repository-D7Xzv9nd.js 
b/assets/source-repository-D7Xzv9nd.js
new file mode 100644
index 00000000000..440a394a718
--- /dev/null
+++ b/assets/source-repository-D7Xzv9nd.js
@@ -0,0 +1,53 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Overview
+
+Apache HBase™ uses [Git](https://git-scm.com/) to manage its source code. 
Instructions on Git use can be found at 
[https://git-scm.com/documentation](https://git-scm.com/documentation).
+
+### Web Browser Access
+
+The following is a link to a browsable version of the source repository:
+
+\`\`\`
+https://gitbox.apache.org/repos/asf?p=hbase.git
+\`\`\`
+
+[Browse the repository](https://gitbox.apache.org/repos/asf?p=hbase.git)
+
+### Anonymous Access
+
+The source can be checked out anonymously from Git with this command (See 
[https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)):
+
+\`\`\`bash
+$ git clone git://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Developer Access
+
+Only project developers can access the Git tree via this method (See 
[https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)).
+
+\`\`\`bash
+$ git clone https://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Access from Behind a Firewall
+
+Refer to the documentation of the SCM used for more information about access 
behind a firewall.
+
+`;function s(){return e.jsx(n,{children:o})}function 
p({}){return[{title:"Source Repository - Apache 
HBase"},{name:"description",content:"Access the Apache HBase source code 
repository."}]}const m=t(function(){return e.jsx(s,{})});export{m as default,p 
as meta};
diff --git a/assets/sponsors-D__nLzUg.js b/assets/sponsors-D__nLzUg.js
new file mode 100644
index 00000000000..608880c2eb2
--- /dev/null
+++ b/assets/sponsors-D__nLzUg.js
@@ -0,0 +1,35 @@
+import{p as e,w as o}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 n=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Sponsors
+
+First off, thanks to [all who 
sponsor](http://www.apache.org/foundation/thanks.html) our parent, the Apache 
Software Foundation.
+
+The below companies have been gracious enough to provide their commercial tool 
offerings free of charge to the Apache HBase™ project.
+
+- The crew at [ej-technologies](http://www.ej-technologies.com/) have been let 
us use 
[JProfiler](http://www.ej-technologies.com/products/jprofiler/overview.html) 
for years now.
+- The lads at [headway software](http://headwaysoftware.com/) have given us a 
license for 
[Restructure101](http://headwaysoftware.com/products/?code=Restructure101) so 
we can untangle our interdependency mess.
+- [YourKit](http://www.yourkit.com) allows us to use their [Java 
Profiler](http://www.yourkit.com/overview/index.jsp).
+- Some of us use [IntelliJ IDEA](http://www.jetbrains.com/idea) thanks to 
[JetBrains](http://www.jetbrains.com/).
+- Thank you to Boris at [Vector Portal](http://www.vectorportal.com/) for 
granting us a license on the 
[image](http://www.vectorportal.com/subcategory/205/KILLER-WHALE-FREE-VECTOR.eps/ifile/9136/detailtest.asp)
 on which our logo is based.
+
+## Sponsoring the Apache Software Foundation
+
+To contribute to the Apache Software Foundation, a good idea in our opinion, 
see the [ASF Sponsorship](http://www.apache.org/foundation/sponsorship.html) 
page.
+
+`;function r(){return e.jsx(t,{children:n})}function 
p({}){return[{title:"Sponsors - Apache 
HBase"},{name:"description",content:"Companies and organizations that sponsor 
the Apache HBase project with tools and resources."}]}const 
w=o(function(){return e.jsx(r,{})});export{w as default,p as meta};
diff --git a/assets/team-7qd-tD0H.js b/assets/team-7qd-tD0H.js
new file mode 100644
index 00000000000..c5a6a36274a
--- /dev/null
+++ b/assets/team-7qd-tD0H.js
@@ -0,0 +1,147 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as 
o}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
 c=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# The Team
+
+A successful project requires many people to play many roles. Some members 
write code or documentation, while others are valuable as testers, submitting 
patches and suggestions.
+
+The team is comprised of Members and Contributors. Members have direct access 
to the source of a project and actively evolve the code-base. Contributors 
improve the project through submission of patches and suggestions to the 
Members. The number of Contributors to the project is unbounded. Get involved 
today. All contributions to the project are greatly appreciated.
+
+## Members
+
+These are the developers with commit privileges that have directly contributed 
to the project in one way or another.
+
+| Image | Id | Name | Email | Time Zone |
+|-------|----|----|-------|-----------|
+| 
![](https://www.gravatar.com/avatar/de20895d3fbc56885e0c6679e428113d?d=mm&s=60) 
| achouhan | Abhishek Singh Chouhan | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/02e0785fde1d08fb3a7b10f9e3b4458f?d=mm&s=60) 
| acube123 | Amitanand S. Aiyer | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/9061d7d8371077797f4442a3cc3fd735?d=mm&s=60) 
| allan163 | Allan Yang | [[email protected]](mailto:[email protected]) | 
+8 |
+| 
![](https://www.gravatar.com/avatar/b7c9ec7cf5ecdbd2c9ce9a96c3233328?d=mm&s=60) 
| andor | Andor Molnar | [[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/46227070ea29a67f9ff1196c6cb894fb?d=mm&s=60) 
| appy | Apekshit Sharma | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/e8ed478224ff187b224ded3f1ceffe8a?d=mm&s=60) 
| anastasia | Anastasia Braginsky | 
[[email protected]](mailto:[email protected]) | +2 |
+| 
![](https://www.gravatar.com/avatar/7412937bb878e132fdaaced278cdc199?d=mm&s=60) 
| apurtell | Andrew Purtell | [[email protected]](mailto:[email protected]) 
| -8 |
+| 
![](https://www.gravatar.com/avatar/fe358a20b87f59013f41e74daff1297a?d=mm&s=60) 
| anoopsamjohn | Anoop Sam John | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/9d7aefd347b4278b4dd9e6d082cc5ade?d=mm&s=60) 
| antonov | Mikhail Antonov | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/8f2c2077ee8018bf39a05508744cbed4?d=mm&s=60) 
| ashishsinghi | Ashish Singhi | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/2a33755c737b5d04d58fd9ac1eecf7fe?d=mm&s=60) 
| ashu | Ashu Pachauri | [[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/88d01aefc01d688250d2e1ecfb77d5be?d=mm&s=60) 
| bharathv | Bharath Vissapragada | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/a7736e20ef2d2c8e2d29fb6fcca68f37?d=mm&s=60) 
| binlijin | Lijin Bin | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/37adbbc08d6125597714bdccff622312?d=mm&s=60) 
| brfrn169 | Toshihiro Suzuki | 
[[email protected]](mailto:[email protected]) | +9 |
+| 
![](https://www.gravatar.com/avatar/856f508ca64e746159909f8895013716?d=mm&s=60) 
| busbey | Sean Busbey | [[email protected]](mailto:[email protected]) | -6 |
+| 
![](https://www.gravatar.com/avatar/3e8dc270406be499894379248c102f75?d=mm&s=60) 
| chenglei | Cheng Lei | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/4c7c1ca9149754acb24821f863caa2e0?d=mm&s=60) 
| chenheng | Heng Chen | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/64eaef947a9696930c24d9f97e9e8f4f?d=mm&s=60) 
| chia7712 | Chia-Ping Tsai | [[email protected]](mailto:[email protected]) 
| +8 |
+| 
![](https://www.gravatar.com/avatar/018c6e24ed0bbcb6cc454fd3fcd68a0f?d=mm&s=60) 
| ddas | Devaraj Das | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/f565c3ee128b60aa146f8f3ded83dfba?d=mm&s=60) 
| dimaspivak | Dima Spivak | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/10f3e2ffd0e0932a3fcf497cd7ce3a48?d=mm&s=60) 
| dmeil | Doug Meil | [[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/795ec1f6a3afef0ba3036a5ca08d71d2?d=mm&s=60) 
| eclark | Elliott Clark | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/c7a3ecfd28ec573abf5ac407a07cb73a?d=mm&s=60) 
| elserj | Josh Elser | [[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/cf285762c1c5476b7545ba2253ea4c57?d=mm&s=60) 
| enis | Enis Soztutar | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/a22e66f5a5ea062b545025fcde13ee42?d=mm&s=60) 
| eshcar | Eshcar Hillel | [[email protected]](mailto:[email protected]) | +2 |
+| 
![](https://www.gravatar.com/avatar/b73b871cbbfae7547561fd69842b3dc1?d=mm&s=60) 
| fenghh | Honghua Feng | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/9f77afe60376dcdfe921b3e2678ee601?d=mm&s=60) 
| garyh | Gary Helmling | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/1f1edf7e9038a62ac50bcec1ec31fe68?d=mm&s=60) 
| gchanan | Gregory Chanan | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/1a414cd2c7e2ba801ddc4e88e0c8dacc?d=mm&s=60) 
| gjacoby | Geoffrey Jacoby | [[email protected]](mailto:[email protected]) | 
-5 |
+| 
![](https://www.gravatar.com/avatar/f51eca5c118aba405654cbbf64b5ae07?d=mm&s=60) 
| gxcheng | Guangxu Cheng | [[email protected]](mailto:[email protected]) | 
+8 |
+| 
![](https://www.gravatar.com/avatar/3e07e355bdd47fc5acd93ce90769bdfd?d=mm&s=60) 
| haxiaolin | Xiaolin Ha | [[email protected]](mailto:[email protected]) 
| +8 |
+| 
![](https://www.gravatar.com/avatar/9b52f825f93dbfb1e8bc6184caf70341?d=mm&s=60) 
| huaxiangsun | Huaxiang Sun | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/634f324eb27989f242993d4187f2622c?d=mm&s=60) 
| huiruan | Hui Ruan | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/dff94c4b0a22257ec52507938a8cfa52?d=mm&s=60) 
| jdcryans | Jean-Daniel Cryans | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/60de676d88152c33f862ff5e30002e09?d=mm&s=60) 
| jeffreyz | Jeffrey Zhong | [[email protected]](mailto:[email protected]) 
| -8 |
+| 
![](https://www.gravatar.com/avatar/0fa09e0edd9b044bfb51d17325f80263?d=mm&s=60) 
| jerryjch | Jing Chen (Jerry) He | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/dfe54bb796457f4c1900420c6f2156c9?d=mm&s=60) 
| jyates | Jesse Yates | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/241b761637a096aeafb30b58d813a582?d=mm&s=60) 
| jgray | Jonathan Gray | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/3915ca3089eb06dd54357b281171ffd2?d=mm&s=60) 
| jingchengdu | Jingcheng Du | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/d15d61cbcf9bcb1193e7057b54bbb973?d=mm&s=60) 
| esteban | Esteban Gutierrez | [[email protected]](mailto:[email protected]) 
| -8 |
+| 
![](https://www.gravatar.com/avatar/ebb97df150fdf31949d4ccad5f2865ab?d=mm&s=60) 
| janh | Jan Hentschel | [[email protected]](mailto:[email protected]) | +1 |
+| 
![](https://www.gravatar.com/avatar/d00d2383b71ce702f61c11eb8351bba3?d=mm&s=60) 
| jmhsieh | Jonathan Hsieh | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/2cc860c1a9f74367222aee8bb1118928?d=mm&s=60) 
| junegunn | Junegunn Choi | [[email protected]](mailto:[email protected]) 
| +9 |
+| 
![](https://www.gravatar.com/avatar/527bc96fd4969f1e6f189fb1e1f68287?d=mm&s=60) 
| jxiang | Jimmy Xiang | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/ff82ad13e5fc9f709d3f20bfee90b6c8?d=mm&s=60) 
| kannan | Kannan Muthukkaruppan | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/7a2ac22cee95c39244d4b877b9f23737?d=mm&s=60) 
| karthik | Karthik Ranganathan | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/7f3acb5e05033f80de8979016c188902?d=mm&s=60) 
| larsfrancke | Lars Francke | 
[[email protected]](mailto:[email protected]) | Europe/Berlin |
+| 
![](https://www.gravatar.com/avatar/f7a10dabf438ff37c529dd1768e06e05?d=mm&s=60) 
| larsgeorge | Lars George | 
[[email protected]](mailto:[email protected]) | +1 |
+| 
![](https://www.gravatar.com/avatar/f7537f2a603464e75451b64653f871ae?d=mm&s=60) 
| larsh | Lars Hofhansl | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/d73f6d43b8ea3a40b1719182aa1ae8ce?d=mm&s=60) 
| liangxie | Liang Xie | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/85e03b6111e0f776472db1e3d1ba6363?d=mm&s=60) 
| liushaohui | Shaohui Liu | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/889ed1ce478f8d6993f422f481de650f?d=mm&s=60) 
| liyin | Liyin Tang | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/9efe921264c26115546b3e48911514d1?d=mm&s=60) 
| liyu | Yu Li | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/637717f828caaf41780e5fb42ce889ae?d=mm&s=60) 
| lupeng | Peng Lu | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/7b9881158afa9788e217ee28d08b0fc9?d=mm&s=60) 
| mbautin | Mikhail Bautin | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/366b37bb11a365ac51033712fc7f4a71?d=mm&s=60) 
| mbertozzi | Matteo Bertozzi | 
[[email protected]](mailto:[email protected]) | 0 |
+| 
![](https://www.gravatar.com/avatar/15a50da131350f481e47720e7cc4f841?d=mm&s=60) 
| mdrob | Mike Drob | [[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/3c965eda01134f3c1242239f99cd651f?d=mm&s=60) 
| meszibalu | Balazs Meszaros | 
[[email protected]](mailto:[email protected]) | +1 |
+| 
![](https://www.gravatar.com/avatar/6973338247b75e10b14c5b4d5512c377?d=mm&s=60) 
| misty | Misty Stanley-Jones | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/a46c0ae7fd62b71a821945aa1bd11f31?d=mm&s=60) 
| ndimiduk | Nick Dimiduk | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/96e46a6636fcf52fc49e634c9d5de532?d=mm&s=60) 
| nihaljain | Nihal Jain | [[email protected]](mailto:[email protected]) 
| +5 |
+| 
![](https://www.gravatar.com/avatar/fbaf5daaa2f8bc4e1d3d0ec3f1f25c09?d=mm&s=60) 
| niuyulin | Yulin Niu | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/c70b370566634fbb2a68132039a85f46?d=mm&s=60) 
| nkeywal | Nicolas Liochon | [[email protected]](mailto:[email protected]) | 
+1 |
+| 
![](https://www.gravatar.com/avatar/5821079251ed5637dfb40ae4758f2fa8?d=mm&s=60) 
| nspiegelberg | Nicolas Spiegelberg | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/aef57711fde7fc23a7a7c2ac93355117?d=mm&s=60) 
| octo47 | Andrey Stepachev | [[email protected]](mailto:[email protected]) | 0 |
+| 
![](https://www.gravatar.com/avatar/54203e8d4e8ab3a7f50583ff2354cee1?d=mm&s=60) 
| openinx | Zheng Hu | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/995d8388fbe6e0ea33f7ffcc2d5d0900?d=mm&s=60) 
| pankajkumar | Pankaj Kumar | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/597d991861e6316c8a8ee5e457b68ded?d=mm&s=60) 
| psomogyi | Peter Somogyi | [[email protected]](mailto:[email protected]) 
| +1 |
+| 
![](https://www.gravatar.com/avatar/5b30d0f465e83af9901d05b5493a1953?d=mm&s=60) 
| rajeshbabu | Rajeshbabu Chintaguntla | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/12597058dae849f90076a021ef3e01dd?d=mm&s=60) 
| ramkrishna | Ramkrishna S Vasudevan | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/d586a28dfd560cf11215c1678b15217b?d=mm&s=60) 
| rawson | Ryan Rawson | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/e7f9ef3d97f18d8660691bdeabe966eb?d=mm&s=60) 
| reidchan | Reid Chan | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/9f3184c3ddc65cfd95b471e7af66703e?d=mm&s=60) 
| shahrs87 | Rushabh Shah | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/4b7ccc5a14cd42a168753073444036f3?d=mm&s=60) 
| sakthi | Sakthi Vel | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/401a15feb447d781f4ed0dc1345ec04c?d=mm&s=60) 
| rmattingly | Ray Mattingly | 
[[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/a25c89dd7cb09995d956995d014e66a8?d=mm&s=60) 
| sershe | Sergey Shelukhin | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/641aec2fabc99f4c1b7ff89b8aa09706?d=mm&s=60) 
| ssrungarapu | Srikanth Srungarapu | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/6dcb921ad14013901bd92e6ed943916f?d=mm&s=60) 
| stack | Michael Stack | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/42056a7aa60fef9df88c7cd3d50c14d8?d=mm&s=60) 
| stoty | Istvan Toth | [[email protected]](mailto:[email protected]) | +1 |
+| 
![](https://www.gravatar.com/avatar/9060b03f6824864ef43d397d9fe41096?d=mm&s=60) 
| syuanjiang | Stephen Yuan Jiang | 
[[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/2bc29d57ae3cc718cd5fb23f94b196a1?d=mm&s=60) 
| taklwu | Tak-Lon (Stephen) Wu | [[email protected]](mailto:[email protected]) 
| -8 |
+| 
![](https://www.gravatar.com/avatar/468276b3793b40ec08528ad81092b2ef?d=mm&s=60) 
| tedyu | Ted Yu | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/c4e175273214c472773957766ad6b6c6?d=mm&s=60) 
| tianhang | Tianhang Tang | [[email protected]](mailto:[email protected]) 
| +8 |
+| 
![](https://www.gravatar.com/avatar/8587ee9a6721d886567fb06e20ddbafd?d=mm&s=60) 
| tianjy | - | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/4d175cf9f78c36378972941bb01e8c75?d=mm&s=60) 
| todd | Todd Lipcon | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/c73b058d47f2db1621b6f55a2f22f040?d=mm&s=60) 
| toffer | Francis Liu | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/b370e829fb32221574ad5edd21393bed?d=mm&s=60) 
| vikasv | Vikas Vishwakarma | [[email protected]](mailto:[email protected]) | 
+5 |
+| 
![](https://www.gravatar.com/avatar/3973f9c377db612c7f22afdfa0fef383?d=mm&s=60) 
| virag | Virag Kothari | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/1cbbd953691c9e5592469b323eed9169?d=mm&s=60) 
| vjasani | Viraj Jasani | [[email protected]](mailto:[email protected]) | +5 
|
+| 
![](https://www.gravatar.com/avatar/bb28ca87f3deb351686f9cc0ffc7ed91?d=mm&s=60) 
| water | Xiang Li | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/f343631e8f17aff369dd8eae8164f5fc?d=mm&s=60) 
| wchevreuil | Wellington Chevreuil | 
[[email protected]](mailto:[email protected]) | 0 |
+| 
![](https://www.gravatar.com/avatar/21594a57c644bf201aae63037f195184?d=mm&s=60) 
| weichiu | Wei-Chiu Chuang | [[email protected]](mailto:[email protected]) | 
-8 |
+| 
![](https://www.gravatar.com/avatar/07e24ce9040a581bbfec81d9803de521?d=mm&s=60) 
| xucang | Xu Cang | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/8c7c9edef71d2f5b6f0a673a6ded3bc2?d=mm&s=60) 
| yangzhe1991 | Phil Yang | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/fe45f6e161ee945f8d8d8da140ac3100?d=mm&s=60) 
| zghao | Guanghao Zhang | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/de2edb8ef5f82e4a40662d4ff5658ab3?d=mm&s=60) 
| zhangduo | Duo Zhang | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/b5e55f3b05f9460460384768e34400ec?d=mm&s=60) 
| zhaobaiqiang | Baiqiang Zhao | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/446df0e403724a7f8b7bd6998ff46b7a?d=mm&s=60) 
| zjushch | Chunhui Shen | [[email protected]](mailto:[email protected]) | +8 
|
+| 
![](https://www.gravatar.com/avatar/bb2eb1414c96df6676df941f006a9917?d=mm&s=60) 
| churro | Rahul Gidwani | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/6d5e811854c8c2f81bd906cb93666e4e?d=mm&s=60) 
| yiliang | Yi Liang | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/5f192ad7cce9920785ca7a12ef790166?d=mm&s=60) 
| zyork | Zach York | [[email protected]](mailto:[email protected]) | -8 |
+| 
![](https://www.gravatar.com/avatar/f199428fb754becc651aed88dda834bb?d=mm&s=60) 
| meiyi | Yi Mei | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/72c73447c7eb7f253ec10458a690ced2?d=mm&s=60) 
| wangzheng | Zheng (bsglz) Wang | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/f810df5d9321e915356dd69dfcd8745d?d=mm&s=60) 
| sunxin | Xin Sun | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/87e8861d81fba64ba5489b19f818dcd0?d=mm&s=60) 
| huangzhuoyue | Zhuoyue Huang | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/61a23c65536e91627eebd4731cfbac13?d=mm&s=60) 
| xiaoyt | Yutong Xiao | [[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/5f9d8d7e996cf8f3c3e33ef8a80cb2eb?d=mm&s=60) 
| bbeaudreault | Bryan Beaudreault | 
[[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/fc2d2dbbabaccab34bd9e0df7554f7ae?d=mm&s=60) 
| heliangjun | Liangjun He | 
[[email protected]](mailto:[email protected]) | +8 |
+| 
![](https://www.gravatar.com/avatar/f1f683a37a96f744fd1f3b99c3e4eb35?d=mm&s=60) 
| cconnell | Charles Connell | 
[[email protected]](mailto:[email protected]) | -5 |
+| 
![](https://www.gravatar.com/avatar/a7433f7ece290f0140050e072a0b1526?d=mm&s=60) 
| chandrakambham | Chandra Kambham | 
[[email protected]](mailto:[email protected]) | +5 |
+| 
![](https://www.gravatar.com/avatar/62961f3d449c5fa76f7345e17fe4f400?d=mm&s=60) 
| paksyd | Dávid Paksy | [[email protected]](mailto:[email protected]) | +1 |
+
+## Contributors
+
+Apache HBase™ does not maintain a list of contributors.
+
+`;function h(){return 
e.jsx(o,{components:{img:({src:a,alt:r})=>e.jsx("img",{src:a||"",alt:r||"",loading:"lazy",className:"my-0
 h-10 w-10 rounded-full"}),td:({children:a})=>e.jsx("td",{className:"px-4 py-3 
align-middle",children:a})},children:c})}function s({}){return[{title:"Team - 
Apache HBase"},{name:"description",content:"Meet the Apache HBase project team 
members and contributors who develop and maintain HBase."}]}const 
d=t(function(){return e.jsx(h,{})});export{d as default,s as meta};
diff --git a/code-of-conduct/index.html b/code-of-conduct/index.html
index 6ea637028ba..9373df8618a 100644
--- a/code-of-conduct/index.html
+++ b/code-of-conduct/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct - 
Apache HBase</title><meta name="description" content="Code of Conduct and 
Diversity Statement for the Apache HBase project community."/><link 
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><link [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct - 
Apache HBase</title><meta name="description" content="Code of Conduct and 
Diversity Statement for the Apache HBase project community."/><link 
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" 
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">Code of Conduct</h1>
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">Policy</h2>
 <p class="mb-4 text-base leading-7">We expect participants in discussions on 
the HBase project mailing lists, IRC channels, and JIRA issues to abide by the 
Apache Software Foundation&#x27;s <a 
href="http://apache.org/foundation/policies/conduct.html"; target="_blank" 
rel="noopener noreferrer" class="text-primary inline underline-offset-4 
hover:underline">Code of Conduct<!-- --> <svg 
xmlns="http://www.w3.org/2000/svg"; width="24" height="24" viewBox="0 0 24 24" 
fill="none" stroke="currentCo [...]
 <p class="mb-4 text-base leading-7">If you feel there has been a violation of 
this code, please point out your concerns publicly in a friendly and matter of 
fact manner. Nonverbal communication is prone to misinterpretation and 
misunderstanding. Everyone has bad days and sometimes says things they regret 
later. Someone else&#x27;s communication style may clash with yours, but the 
difference can be amicably resolved. After pointing out your concerns please be 
generous upon receiving an ap [...]
@@ -42,11 +43,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/code-of-conduct-rMkicXc0.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/code-of-conduct-CJPklNRV.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/code-of-conduct":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/downloads/index.html b/downloads/index.html
index 15ac021e46d..ca9045f5bd3 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache 
HBase</title><meta name="description" content="Download Apache HBase releases, 
connectors, and operator tools with verification hashes and signatures."/><link 
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin= [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache 
HBase</title><meta name="description" content="Download Apache HBase releases, 
connectors, and operator tools with verification hashes and signatures."/><link 
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" 
type="font/woff2" crossorigin="anonymous"/><link rel=" [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">Downloads</h1>
 <p class="mb-4 text-base leading-7">The below table lists mirrored release 
artifacts and their associated hashes and signatures available ONLY at 
apache.org. The keys used to sign releases can be found in our published <a 
href="https://downloads.apache.org/hbase/KEYS"; target="_blank" rel="noopener 
noreferrer" class="text-primary inline underline-offset-4 
hover:underline">KEYS<!-- --> <svg xmlns="http://www.w3.org/2000/svg"; 
width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="cu [...]
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">Releases</h2>
 
@@ -122,11 +123,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/downloads-BrfNBQbM.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/downloads-BRAGpK9n.js";
   
   window.__reactRouterRouteModules = {"root":route0,"routes/downloads":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/fonts/inter-latin-wght-italic.woff2 
b/fonts/inter-latin-wght-italic.woff2
new file mode 100644
index 00000000000..2f06c65192b
Binary files /dev/null and b/fonts/inter-latin-wght-italic.woff2 differ
diff --git a/fonts/inter-latin-wght-normal.woff2 
b/fonts/inter-latin-wght-normal.woff2
new file mode 100644
index 00000000000..d15208de03c
Binary files /dev/null and b/fonts/inter-latin-wght-normal.woff2 differ
diff --git a/index.html b/index.html
index b37c6a7cda8..b1e13619056 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" 
as="image" href="/images/large-logo.svg"/><link rel="preload" as="image" 
href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta 
name="description" content="Apache HBase® is the Hadoop database, a 
distributed, scalable, big data store."/><link rel="preconnect" href="h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" 
as="image" href="/images/large-logo.svg"/><link rel="preload" as="image" 
href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta 
name="description" content="Apache HBase® is the Hadoop database, a 
distributed, scalable, big data store."/><link rel="preload" as="font"  [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,7 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
     if (!window.history.state || !window.history.state.key) {
       let key = Math.random().toString(32).slice(2);
       window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
 import * as route1 from "/assets/home-CxfyEQdh.js";
   
   window.__reactRouterRouteModules = {"root":route0,"routes/home":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/mailing-lists/index.html b/mailing-lists/index.html
index 20081bd55c6..aae88457a89 100644
--- a/mailing-lists/index.html
+++ b/mailing-lists/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache 
HBase</title><meta name="description" content="Subscribe to Apache HBase 
mailing lists including user, developer, commits, issues, and builds 
lists."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link 
rel="preconnect" href="https://fonts.gstatic.com"; crossorigi [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache 
HBase</title><meta name="description" content="Subscribe to Apache HBase 
mailing lists including user, developer, commits, issues, and builds 
lists."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">Apache HBase™ Mailing Lists</h1>
 <p class="mb-4 text-base leading-7">For each list, links are provided to 
subscribe, unsubscribe, and view archives.</p>
 
 
@@ -90,11 +91,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/mailing-lists-BQgZQ_zQ.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/mailing-lists-doDVBa9G.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/mailing-lists":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/news/index.html b/news/index.html
index ab15765558d..825b2d8b149 100644
--- a/news/index.html
+++ b/news/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" 
as="image" 
href="https://www.apache.org/events/current-event-234x60.png"/><title>News - 
Apache HBase</title><meta name="description" content="Latest news, events, and 
releases for Apache HBase."/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" href="ht [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" 
as="image" 
href="https://www.apache.org/events/current-event-234x60.png"/><title>News - 
Apache HBase</title><meta name="description" content="Latest news, events, and 
releases for Apache HBase."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,7 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
     if (!window.history.state || !window.history.state.key) {
       let key = Math.random().toString(32).slice(2);
       window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
 import * as route1 from "/assets/news-BaUFuyKX.js";
   
   window.__reactRouterRouteModules = {"root":route0,"routes/news":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/other-resources/index.html b/other-resources/index.html
index 3c3ef5c535d..2361eea0399 100644
--- a/other-resources/index.html
+++ b/other-resources/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources - 
Apache HBase</title><meta name="description" content="Books and other learning 
resources about Apache HBase."/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><link 
rel="modulepreload" href [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources - 
Apache HBase</title><meta name="description" content="Books and other learning 
resources about Apache HBase."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-lati 
[...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,7 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
     if (!window.history.state || !window.history.state.key) {
       let key = Math.random().toString(32).slice(2);
       window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
 import * as route1 from "/assets/other-resources-BG0U4qkL.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/other-resources":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/powered-by-hbase/index.html b/powered-by-hbase/index.html
index 24d7bc4aa15..c8f3f2ba280 100644
--- a/powered-by-hbase/index.html
+++ b/powered-by-hbase/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase - 
Apache HBase</title><meta name="description" content="Companies and 
organizations using Apache HBase in production for their data storage and 
processing needs."/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; cro [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase - 
Apache HBase</title><meta name="description" content="Companies and 
organizations using Apache HBase in production for their data storage and 
processing needs."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><l [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,7 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
     if (!window.history.state || !window.history.state.key) {
       let key = Math.random().toString(32).slice(2);
       window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
 import * as route1 from "/assets/powered-by-hbase-D2XtlmVH.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/powered-by-hbase":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/source-repository/index.html b/source-repository/index.html
index 57e989957a9..d3fb247a201 100644
--- a/source-repository/index.html
+++ b/source-repository/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository - 
Apache HBase</title><meta name="description" content="Access the Apache HBase 
source code repository."/><link rel="preconnect" 
href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><link 
rel="modulepreload" href="/as [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository - 
Apache HBase</title><meta name="description" content="Access the Apache HBase 
source code repository."/><link rel="preload" as="font" 
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" 
crossorigin="anonymous"/><link rel="prefetch" as="font" 
href="/fonts/inter-latin-wgh [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">Overview</h1>
 <p class="mb-4 text-base leading-7">Apache HBase™ uses <a 
href="https://git-scm.com/"; target="_blank" rel="noopener noreferrer" 
class="text-primary inline underline-offset-4 hover:underline">Git<!-- --> <svg 
xmlns="http://www.w3.org/2000/svg"; width="24" height="24" viewBox="0 0 24 24" 
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5 
align-[-2px]"><path d="M15 3h6v6"></path><path d="M10 14  [...]
 <h3 class="mt-8 mb-1 scroll-mt-28 text-xl font-semibold tracking-tight">Web 
Browser Access</h3>
 <p class="mb-4 text-base leading-7">The following is a link to a browsable 
version of the source repository:</p>
@@ -43,11 +44,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/source-repository-CuYRai5W.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/source-repository-D7Xzv9nd.js";
   
   window.__reactRouterRouteModules = 
{"root":route0,"routes/source-repository":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/sponsors/index.html b/sponsors/index.html
index 7bf11e5eb97..a24d474bf4c 100644
--- a/sponsors/index.html
+++ b/sponsors/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache 
HBase</title><meta name="description" content="Companies and organizations that 
sponsor the Apache HBase project with tools and resources."/><link 
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/> [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache 
HBase</title><meta name="description" content="Companies and organizations that 
sponsor the Apache HBase project with tools and resources."/><link 
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" 
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as= [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">Sponsors</h1>
 <p class="mb-4 text-base leading-7">First off, thanks to <a 
href="http://www.apache.org/foundation/thanks.html"; target="_blank" 
rel="noopener noreferrer" class="text-primary inline underline-offset-4 
hover:underline">all who sponsor<!-- --> <svg 
xmlns="http://www.w3.org/2000/svg"; width="24" height="24" viewBox="0 0 24 24" 
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5 
align-[-2px]"><path [...]
 <p class="mb-4 text-base leading-7">The below companies have been gracious 
enough to provide their commercial tool offerings free of charge to the Apache 
HBase™ project.</p>
 <ul class="mb-4 ml-6 list-disc space-y-2">
@@ -38,11 +39,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/sponsors-Be-uqIKJ.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/sponsors-D__nLzUg.js";
   
   window.__reactRouterRouteModules = {"root":route0,"routes/sponsors":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 832c0390f2a..4aef4e2c9a2 100644
--- a/team/index.html
+++ b/team/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache 
HBase</title><meta name="description" content="Meet the Apache HBase project 
team members and contributors who develop and maintain HBase."/><link 
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" 
href="https://fonts.gstatic.com"; crossorigin="anonymous"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta 
name="viewport" content="width=device-width, initial-scale=1"/><link 
rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache 
HBase</title><meta name="description" content="Meet the Apache HBase project 
team members and contributors who develop and maintain HBase."/><link 
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2" 
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="fon [...]
               (function() {
                 const theme = localStorage.getItem('theme');
                 const root = document.documentElement;
@@ -12,7 +12,8 @@
                   localStorage.setItem('theme', systemTheme);
                 }
               })();
-            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body><header class="border-border/0 
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 
w-full border-b backdrop-blur transition-[border] duration-200"><nav 
class="container mx-auto flex h-16 items-center justify-between px-4"><a 
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/" 
data-discover="true"><img src="/images/l [...]
+            </script><noscript><style>.theme-toggle-wrapper { display: none 
!important; }</style></noscript></head><body class="font-base"><header 
class="border-border/0 bg-background/80 
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b 
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto 
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex 
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true">< 
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight 
text-balance md:text-6xl">The Team</h1>
 <p class="mb-4 text-base leading-7">A successful project requires many people 
to play many roles. Some members write code or documentation, while others are 
valuable as testers, submitting patches and suggestions.</p>
 <p class="mb-4 text-base leading-7">The team is comprised of Members and 
Contributors. Members have direct access to the source of a project and 
actively evolve the code-base. Contributors improve the project through 
submission of patches and suggestions to the Members. The number of 
Contributors to the project is unbounded. Get involved today. All contributions 
to the project are greatly appreciated.</p>
 <h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight 
md:text-4xl">Members</h2>
@@ -823,11 +824,11 @@
       console.error(error);
       sessionStorage.removeItem(storageKey2);
     }
-  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/team-Dv-KHXCU.js";
+  })("react-router-scroll-positions", 
null)</script><script>window.__reactRouterContext = 
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
 = new 
ReadableStream({start(controller){window.__reactRouterContext.streamController 
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/team-7qd-tD0H.js";
   
   window.__reactRouterRouteModules = {"root":route0,"routes/team":route1};
 
-import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section 
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div 
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2 
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting 
Started</h2><p class="text-muted-foreground mt-2">From download to production 
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4 
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
 
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
 
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
 hidden 
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file

Reply via email to