# random seed: R02S46170a7a8abc3ad07d2b70fd08efc176
# Start of hb tests
# Start of paint tests
# Start of ot tests
start clip rectangle 0 500 500 1e+03
  start transform 1 0 0 1 0 0
    start transform 1 0 -0 1 0 0
      paint color glyph 164; acting as failed
    end transform
    start clip rectangle 100 100 900 900
      start transform 1 0 -0 1 0 0
        paint color glyph 93; acting as failed
      end transform
      start clip rectangle 0 0 1e+03 1e+03
        start transform 1 0 -0 1 0 0
          start clip glyph 2
            start transform 1 0 0 1 0 0
              radial gradient
                p0 166 768 radius 0
                p1 166 768 radius 256
                colors 2
                  0 0 128 0 255
                  0.5 255 255 255 255
                  1 255 0 0 255
            end transform
          end clip
        end transform
      end clip
    end clip
    push group
      start transform 1 0 -0 1 0 0
        start clip glyph 159
          start transform 1 0 0 1 0 0
            solid 128 128 128 102
          end transform
        end clip
      end transform
    pop group mode 3
  end transform
end clip
