Apache Daffodil™ Extension for Visual Studio Code
Copyright 2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Based on source code originally developed by
- Concurrent Technologies Corporation (https://www.ctc.com/)
- Nteligen LLC (https://www.nteligen.com/)
