<?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 flm:originalName="Tree/Tree_folderClosedIcon" version="2.0" afx:className="Tree_folderClosedIcon" afx:baseClassName="flash.display.Sprite" xmlns:afx="http://ns.apache.org/flex/2012" xmlns:flm="http://ns.adobe.com/flame/2008" xmlns="http://ns.adobe.com/fxg/2008">
  <Group>
    <Group aaa:type="layer" aaa:userLabel="bounds" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Path data="M16 0 16 16 0 16 0 0 16 0">
        <fill>
          <SolidColor color="#FF0000" alpha="0"/>
        </fill>
      </Path>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="icon" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Group>
        <Group>
          <Path data="M3 5 3 3 9 3 9 5 15 5 15 14 2 14 2 5 3 5">
            <fill>
              <SolidColor alpha="0.2"/>
            </fill>
          </Path>
        </Group>
        <Group>
          <Path data="M10.65 13 10.65 4 14 4 14 13 10.65 13">
            <fill>
              <LinearGradient x="8" y="2" scaleX="13" rotation="90">
                <GradientEntry ratio="0" color="#BC5E01"/>
                <GradientEntry ratio="1" color="#6B3800"/>
              </LinearGradient>
            </fill>
          </Path>
          <Path data="M10.65 4 10.65 13 1 13 1 4 2 4 2 2 8 2 8 4 10.65 4">
            <fill>
              <LinearGradient x="9" y="2" scaleX="13" rotation="90">
                <GradientEntry ratio="0" color="#BC5E01"/>
                <GradientEntry ratio="1" color="#6B3800"/>
              </LinearGradient>
            </fill>
          </Path>
        </Group>
        <Group>
          <Path data="M9.45 5 9.45 12 2 12 2 5 3 5 3 3 7 3 7 5 9.45 5">
            <fill>
              <LinearGradient x="9" y="3" scaleX="11" rotation="90">
                <GradientEntry ratio="0" color="#D0D1AB"/>
                <GradientEntry ratio="1" color="#EDEEC3"/>
              </LinearGradient>
            </fill>
          </Path>
          <Path data="M9.45 12 9.45 5 13 5 13 12 9.45 12">
            <fill>
              <LinearGradient x="8" y="3" scaleX="11" rotation="90">
                <GradientEntry ratio="0" color="#D0D1AB"/>
                <GradientEntry ratio="1" color="#EDEEC3"/>
              </LinearGradient>
            </fill>
          </Path>
        </Group>
        <Group>
          <Path data="M13 6 2 6 2 5 13 5 13 6">
            <fill>
              <SolidColor color="#FFFFFF" alpha="0.7019608"/>
            </fill>
          </Path>
        </Group>
      </Group>
    </Group>
  </Group>
</Graphic>