<!--
  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.
-->
<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 64 (93537) - https://sketch.com -->
    <title>Icon / Search@1.5x</title>
    <desc>Created with Sketch.</desc>
    <g id="Icon-/-Search" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon id="Path" points="0 0 24 0 24 24 0 24"></polygon>
        <g id="search-alt" transform="translate(4.000000, 4.000000)" fill="currentColor">
            <path d="M2.0502756,2.0502756 C4.64681622,-0.54626503 8.80843467,-0.6950204 11.5837364,1.70950589 C14.3590382,4.11403218 14.804545,8.25440896 12.6043062,11.1943062 L12.6043062,11.1943062 L12.584,11.214 L16.5643062,15.1943062 C16.7536188,15.3820728 16.8601045,15.6376686 16.8601045,15.9043062 C16.8601045,16.1709437 16.7536188,16.4265396 16.5643062,16.6143062 C16.3765396,16.8036188 16.1209437,16.9101045 15.8543062,16.9101045 C15.5876686,16.9101045 15.3320728,16.8036188 15.1443062,16.6143062 L11.1595821,12.6301298 C8.22188565,14.8010066 4.10458043,14.3481289 1.70950589,11.5837364 C-0.6950204,8.80843467 -0.54626503,4.64681622 2.0502756,2.0502756 Z M10.4943062,3.46430617 C8.54038301,1.5153163 5.37685647,1.5179821 3.42622078,3.47026222 C1.47558509,5.42254234 1.47558509,8.58607001 3.42622078,10.5383501 C5.37685647,12.4906302 8.54038301,12.493296 10.4943062,10.5443062 C11.4347232,9.60626354 11.963244,8.33257878 11.963244,7.00430616 C11.963244,5.67603357 11.4347232,4.4023488 10.4943062,3.46430617 Z" id="Combined-Shape"></path>
        </g>
    </g>
</svg>
