// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

CANVAS_DIMENSIONS, 20,
MOVE_TO, 5.03f, 2.04f,
H_LINE_TO, 3.04f,
R_LINE_TO, -0.02f, 1.95f,
H_LINE_TO, 1.02f,
R_V_LINE_TO, 2,
R_H_LINE_TO, 2.02f,
R_LINE_TO, -0.01f, 1.99f,
R_H_LINE_TO, 2,
R_LINE_TO, -0.01f, -1.99f,
R_H_LINE_TO, 1.97f,
V_LINE_TO, 4.05f,
R_LINE_TO, -1.96f, -0.07f,
V_LINE_TO, 2.04f,
CLOSE,
MOVE_TO, 16, 8,
R_H_LINE_TO, 2,
V_LINE_TO, 6,
R_H_LINE_TO, -2,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, 2, -3,
R_H_LINE_TO, -2,
V_LINE_TO, 3,
R_CUBIC_TO, 1.1f, 0, 2, 0.96f, 2, 2,
CLOSE,
R_MOVE_TO, -6, 0,
R_H_LINE_TO, 2,
R_V_LINE_TO, -2,
R_H_LINE_TO, -2,
R_V_LINE_TO, 2,
CLOSE,
MOVE_TO, 16, 11,
R_H_LINE_TO, 2,
V_LINE_TO, 9,
R_H_LINE_TO, -2,
R_V_LINE_TO, 2,
CLOSE,
MOVE_TO, 6, 18,
R_H_LINE_TO, 2,
R_V_LINE_TO, -2,
H_LINE_TO, 6,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, -3.97f, -4,
H_LINE_TO, 4,
R_V_LINE_TO, -1.97f,
H_LINE_TO, 2.03f,
V_LINE_TO, 14,
CLOSE,
MOVE_TO, 9, 5,
R_H_LINE_TO, 2,
R_V_LINE_TO, -2,
H_LINE_TO, 9,
R_V_LINE_TO, 2,
CLOSE,
MOVE_TO, 9, 18,
R_H_LINE_TO, 2,
R_V_LINE_TO, -2,
H_LINE_TO, 9,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, -7, -7,
R_H_LINE_TO, 2,
V_LINE_TO, 9,
H_LINE_TO, 2,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, 2, 7,
R_CUBIC_TO, -1.1f, 0, -2, -1.04f, -2, -2,
R_H_LINE_TO, 2,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, 9, 0,
R_H_LINE_TO, 2,
R_V_LINE_TO, -2,
R_H_LINE_TO, -2,
R_V_LINE_TO, 2,
CLOSE,
R_MOVE_TO, 4.97f, -3,
R_V_LINE_TO, -1.97f,
H_LINE_TO, 16,
V_LINE_TO, 15,
R_H_LINE_TO, 1.97f,
CLOSE,
MOVE_TO, 16, 18,
R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
R_H_LINE_TO, -2,
R_V_LINE_TO, 2,
CLOSE,
END
