/*
 *  Copyright 2016 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#ifdef __OBJC__

#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif

#if !defined(__has_feature) || !__has_feature(nullability)
#error "This file requires nullability support."
#endif

#import <Foundation/Foundation.h>

// The following nonnull macros were introduced in OSX SDK 10.10.3. However,
// the bots appear to be running something older. We define them here if they
// aren't already defined in NSObjCRuntime.h, which is included by
// Foundation/Foundation.h.

#if !defined(NS_ASSUME_NONNULL_BEGIN)
#define NS_ASSUME_NONNULL_BEGIN
#endif

#if !defined(NS_ASSUME_NONNULL_END)
#define NS_ASSUME_NONNULL_END
#endif

#endif  // __OBJC__
