#
# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#    Loetz GmbH&Co.KG - initial API and implementation
#

# NLS_MESSAGEFORMAT_VAR

################ blurb property ####################################
featureText=\
Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Public License v1.0\n\
which accompanies this distribution, and is available at\n\
http://www.eclipse.org/legal/epl-v10.html\n\
\n\
Contributors:\n\
    Loetz GmbH&Co.KG - implementation\n\
\n\
\n\
The bundle contains software licensed under the follwing licenses:\n\
	- Apache License 2.0          for dragdrop.scss\n\
	- Apache License 2.0          for Vaadin Themes and Vaadin sass compiler\n\
	- SIL Open Font License (OFL) for Font Awesome which is Dual licensed. We decided to go with the OFL\n\
	- w3c EPL                     for org.w3c.css.sac_1.3.1\n\
	- w3c flute 1.3.0 license     for org.w3c.flute_1.3.0.gg2\n\
	- "public domain"             for reset.scss\n\
\n
################ end of blurb property ####################################
