<!--
 Copyright (C) 2015 The Android Open Source Project

     Licensed 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:auto="http://schemas.android.com/apk/res-auto"
        auto:height="64dp"
        auto:width="64dp"
        auto:viewportHeight="200"
        auto:viewportWidth="200" >

    <group>
        <path
            auto:name="background1"
            auto:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z"
            auto:fillColor="#FF000000"/>
        <path
            auto:name="background2"
            auto:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z"
            auto:fillColor="#FF000000"/>
    </group>
    <group
        auto:pivotX="100"
        auto:pivotY="100"
        auto:rotation="90"
        auto:scaleX="0.75"
        auto:scaleY="0.5"
        auto:translateX="0.0"
        auto:translateY="100.0">
        <path
            auto:name="twoLines"
            auto:pathData="M 100,10 v 90 M 10,100 h 90"
            auto:strokeColor="#FF00FF00"
            auto:strokeWidth="10" />
    </group>

</vector>