
Apache Fortress Web
Copyright 2003-2016 The Apache Software Foundation

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


------------------------------------------------------------------------------


For inmethod grid Wicket Components:

src\main\java\com\inmethod\grid\common\res\icons\trashcan-delete.png
was created by Momenticons  http://momentumdesignlab.com/
and is being distrubted under a Creative Commons (Attribution 3.0 Unported)
license.  For full details on the terms of the license see this page:
http://creativecommons.org/licenses/by/3.0/
The image itself has been modified for this distribution.
From 32x32 px to 16x16px.


