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

  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.

-->
<Graphic version="2.0" xmlns="http://ns.adobe.com/fxg/2008" viewHeight="96" viewWidth="100"
	scaleGridLeft="5" scaleGridTop="12" scaleGridRight="95" scaleGridBottom="83">
	<!-- Transparent rect used to center the bar -->
	<Rect x="0" y="0" width="100" height="8">
		<fill>
			<SolidColor color="#000000" alpha="0"/>
		</fill>
	</Rect>
	<!-- Border --> 
	<Path y="8" winding="nonZero" data="M100 80 0 80 0 0 100 0 100 80ZM2 78 98 78 98 2 2 2 2 78Z">
        <fill>
           	<SolidColor color="#666666"/>
    	</fill>
   	</Path>
   	<!-- Two tone gradient background -->
   	<Rect x="2" y="10" width="96" height="76">
       	<fill>
   			<LinearGradient rotation="90">
               	<GradientEntry ratio="0.0" color="#E6E6E6" alpha="0.2"/>
   				<GradientEntry ratio="0.2" color="#E6E6E6" alpha="0.4"/>
   				<GradientEntry ratio="0.5" color="#E6E6E6" alpha="0.3"/>
   				<GradientEntry ratio="0.5" color="#000000" alpha="0.12"/>
   				<GradientEntry ratio="1.0" color="#000000" alpha="0.2"/>
   			</LinearGradient>
   		</fill>
   	</Rect>
   	<!-- Top highlight -->
   	<Rect x="4" y="10" width="92" height="2">
       	<fill>
           	<SolidColor color="#FFFFFF"/>
        </fill>
   	</Rect>
   	<!-- Bottom highlight -->
   	<Rect x="4" y="84" width="92" height="2">
       	<fill>
           	<SolidColor color="#FFFFFF"/>
		</fill>
   	</Rect>
   	<!-- Shadow -->
    <Rect x="4" y="88" width="92" height="8">
  		<fill>
   			<LinearGradient rotation="90">
   				<GradientEntry ratio="0" color="#000000" alpha="0.15"/>
   				<GradientEntry ratio="1" color="#000000" alpha="0"/>
   			</LinearGradient>
        </fill>
   	</Rect>
</Graphic>
