Apache HCatalog
Copyright 2011 The Apache Software Foundation

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

This product includes/uses Jline (http://jline.sourceforge.net/)
Copyright (c) 2002-2006, Marc Prud'hommeaux <mwp1@cornell.edu>
All rights reserved.

This product includes/uses JavaEWAH (http://code.google.com/p/javaewah/)
Copyright 2009-2011, Daniel Lemire

This product includes/uses ASM (http://asm.ow2.org/)
Copyright (c) 2000-2005 INRIA, France Telecom
All rights reserved.

This product includes/uses JSON (http://www.json.org/)
Copyright (c) 2002 JSON.org

This product includes/uses ANTLR (http://www.antlr.org/)
Copyright (c) 2003-2006 Terence Parr
All rights reserved.

This product includes/uses DataNucleus (http://www.datanucleus.org/)
Copyright 2008-2008 DataNucleus

This product includes/uses Guava (http://code.google.com/p/guava-libraries/)
Copyright (C) 2006 Google Inc.
