<?xml version="1.0" encoding="UTF-8"?><metadata>
<!--

     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.

-->
  <groupId>a</groupId>
  <artifactId>a</artifactId>
  <version>4</version>
  <versioning>
    <release>4</release>
    <versions>
      <version>1</version>
      <version>2</version>
      <version>3</version>
      <version>4</version>
      <version>5-SNAPSHOT</version>
     </versions>
    <lastUpdated>20080424212921</lastUpdated>
  </versioning>
</metadata>