<!--
  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.
-->

<table>
  <thead>
    <tr><th colspan=2>Version Information</th></tr>
  </thead>

  <tfoot>
    <tr>
      <td>Home</td>
      <td><a href="http://olingo.apache.org/" target="self">Apache Olingo</a></td>
    </tr>
  </tfoot>

  <tbody>
    <tr><td>name</td><td>${name}</td></tr>
    <tr><td>version</td><td>${version}</td></tr>
    <tr><td>timestamp</td><td>${timestamp}</td></tr>
  </tbody>
</table>
