Apache SkyWalking
Copyright 2017-2018 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product bundles icons/fonts in skywalking-ui/public/font/iconfont folder
from the ant-design project,
https://github.com/ant-design/antd-init/tree/master/examples/local-iconfont
Licensed under the MIT license, confirmed by ant-design team member.
https://github.com/ant-design/ant-design/issues/10243