Apache Flagon Distill

Copyright 2022 The Apache Software Foundation (ASF)

This product includes software developed at The Apache Software Foundation (http://www.apache.org/),
based on source code originally developed and generously granted to The Apache Software Foundation
by The University of Maryland, Applied Research Laboratory for Intelligence and Security (http://www.arlis.umd.edu)
and The Charles Stark Draper Laboratory, Inc (http://www.draper.com/).
