/*
 *
 *    Copyright (c) 2013-2014 Nest Labs, Inc.
 *    All rights reserved.
 *
 *    This document is the property of Nest. It is considered
 *    confidential and proprietary information.
 *
 *    This document may not be reproduced or transmitted in any form,
 *    in whole or in part, without the express written permission of
 *    Nest.
 *
 */

/**
 *    @file
 *      This file is an umbrella header for the Topaz-specific
 *      Nest Labs Nest Protect profile.
 *
 */

#ifndef WEAVE_PROFILES_NEST_PROTECT_HPP
#define WEAVE_PROFILES_NEST_PROTECT_HPP

#include "NestProtectConstants.hpp"
#include "NestProtectTags.hpp"

#endif // WEAVE_PROFILES_NEST_PROTECT_HPP
