Copyright (c) 2010-2018 Daniel Nouri, Andreas Kaiser and Contributors.
All Rights Reserved
