// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Generated by generate.py.
library fidl.test.dangerous.constants.upper;
const uint32 ABSTRACT = 1;
const uint32 ALIGNAS = 1;
const uint32 ALIGNOF = 1;
const uint32 AND = 1;
const uint32 AND_EQ = 1;
const uint32 AS = 1;
const uint32 ASM = 1;
const uint32 ASSERT = 1;
const uint32 ASYNC = 1;
const uint32 ATOMIC_CANCEL = 1;
const uint32 ATOMIC_COMMIT = 1;
const uint32 ATOMIC_NOEXCEPT = 1;
const uint32 AUTO = 1;
const uint32 AWAIT = 1;
const uint32 BECOME = 1;
const uint32 BITAND = 1;
const uint32 BITOR = 1;
const uint32 BOOL = 1;
const uint32 BOX = 1;
const uint32 BREAK = 1;
const uint32 BYTE = 1;
const uint32 CASE = 1;
const uint32 CATCH = 1;
const uint32 CHAN = 1;
const uint32 CHAR = 1;
const uint32 CHAR16_T = 1;
const uint32 CHAR32_T = 1;
const uint32 CLASS = 1;
const uint32 CO_AWAIT = 1;
const uint32 CO_RETURN = 1;
const uint32 CO_YIELD = 1;
const uint32 CODING_TRAITS = 1;
const uint32 COMPL = 1;
const uint32 CONCEPT = 1;
const uint32 CONST = 1;
const uint32 CONST_CAST = 1;
const uint32 CONSTEXPR = 1;
const uint32 CONTINUE = 1;
const uint32 CONTROLLER = 1;
const uint32 COVARIANT = 1;
const uint32 CRATE = 1;
const uint32 DECLTYPE = 1;
const uint32 DECODER = 1;
const uint32 DEFAULT = 1;
const uint32 DEFER = 1;
const uint32 DEFERRED = 1;
const uint32 DELETE = 1;
const uint32 DO = 1;
const uint32 DOUBLE = 1;
const uint32 DYNAMIC = 1;
const uint32 DYNAMIC_CAST = 1;
const uint32 ELSE = 1;
const uint32 ENCODER = 1;
const uint32 ENSURE_VALUES_INSTANTIATED = 1;
const uint32 ENUM = 1;
const uint32 ERR = 1;
const uint32 EXPLICIT = 1;
const uint32 EXPORT = 1;
const uint32 EXTENDS = 1;
const uint32 EXTERN = 1;
const uint32 EXTERNAL = 1;
const uint32 FACTORY = 1;
const uint32 FALLTHROUGH = 1;
const uint32 FALSE = 1;
const uint32 FIDL = 1;
const uint32 FIDL_TYPE = 1;
const uint32 FINAL = 1;
const uint32 FINALLY = 1;
const uint32 FLOAT = 1;
const uint32 FN = 1;
const uint32 FOR = 1;
const uint32 FRIEND = 1;
const uint32 FUNC = 1;
const uint32 FUTURE = 1;
const uint32 FUTURES = 1;
const uint32 GET = 1;
const uint32 GO = 1;
const uint32 GOTO = 1;
const uint32 HAS_INVALID_TAG = 1;
const uint32 HASH_CODE = 1;
const uint32 IF = 1;
const uint32 IMPL = 1;
const uint32 IMPLEMENTS = 1;
const uint32 IMPORT = 1;
const uint32 IN = 1;
const uint32 INDEX = 1;
const uint32 INLINE = 1;
const uint32 INT = 1;
const uint32 INT16 = 1;
const uint32 INT32 = 1;
const uint32 INT64 = 1;
const uint32 INT8 = 1;
const uint32 INTERFACE = 1;
const uint32 IS = 1;
const uint32 LET = 1;
const uint32 LHS = 1;
const uint32 LIBRARY = 1;
const uint32 LIST = 1;
const uint32 LONG = 1;
const uint32 LOOP = 1;
const uint32 MACRO = 1;
const uint32 MAP = 1;
const uint32 MATCH = 1;
const uint32 MIXIN = 1;
const uint32 MOD = 1;
const uint32 MODULE = 1;
const uint32 MOVE = 1;
const uint32 MUT = 1;
const uint32 MUTABLE = 1;
const uint32 NAMESPACE = 1;
const uint32 NEVER = 1;
const uint32 NEW = 1;
const uint32 NO_SUCH_METHOD = 1;
const uint32 NOEXCEPT = 1;
const uint32 NONE = 1;
const uint32 NOT = 1;
const uint32 NOT_EQ = 1;
const uint32 NULL = 1;
const uint32 NULLPTR = 1;
const uint32 NUM = 1;
const uint32 OBJECT = 1;
const uint32 OFFSET = 1;
const uint32 OFFSETOF = 1;
const uint32 OK = 1;
const uint32 ON_OPEN = 1;
const uint32 OPERATOR = 1;
const uint32 OPTION = 1;
const uint32 OR = 1;
const uint32 OR_EQ = 1;
const uint32 OVERRIDE = 1;
const uint32 PACKAGE = 1;
const uint32 PART = 1;
const uint32 PRIV = 1;
const uint32 PRIVATE = 1;
const uint32 PROC = 1;
const uint32 PROTECTED = 1;
const uint32 PROXY = 1;
const uint32 PUB = 1;
const uint32 PUBLIC = 1;
const uint32 PURE = 1;
const uint32 RANGE = 1;
const uint32 REF = 1;
const uint32 REGISTER = 1;
const uint32 REINTERPRET_CAST = 1;
const uint32 REQUIRES = 1;
const uint32 RESULT = 1;
const uint32 RETHROW = 1;
const uint32 RETURN = 1;
const uint32 RHS = 1;
const uint32 RUNE = 1;
const uint32 RUNTIME_TYPE = 1;
const uint32 SELECT = 1;
const uint32 SELF = 1;
const uint32 SEND = 1;
const uint32 SET = 1;
const uint32 SET_CONTROLLER = 1;
const uint32 SHORT = 1;
const uint32 SIGNED = 1;
const uint32 SIZEOF = 1;
const uint32 SOME = 1;
const uint32 STATIC = 1;
const uint32 STATIC_ASSERT = 1;
const uint32 STATIC_CAST = 1;
const uint32 STREAM = 1;
const uint32 STRING = 1;
const uint32 STRUCT = 1;
const uint32 STUB = 1;
const uint32 SUPER = 1;
const uint32 SWITCH = 1;
const uint32 SYNCHRONIZED = 1;
const uint32 TEMPLATE = 1;
const uint32 THIS = 1;
const uint32 THREAD_LOCAL = 1;
const uint32 THROW = 1;
const uint32 TO_STRING = 1;
const uint32 TRAIT = 1;
const uint32 TRUE = 1;
const uint32 TRY = 1;
const uint32 TYPE = 1;
const uint32 TYPEDEF = 1;
const uint32 TYPEID = 1;
const uint32 TYPENAME = 1;
const uint32 TYPEOF = 1;
const uint32 UINT16 = 1;
const uint32 UINT32 = 1;
const uint32 UINT64 = 1;
const uint32 UINT8 = 1;
const uint32 UNION = 1;
const uint32 UNSAFE = 1;
const uint32 UNSIGNED = 1;
const uint32 UNSIZED = 1;
const uint32 USE = 1;
const uint32 USING = 1;
const uint32 VALUE = 1;
const uint32 VALUE_OF = 1;
const uint32 VALUE_UNION = 1;
const uint32 VALUES_MAP = 1;
const uint32 VAR = 1;
const uint32 VEC = 1;
const uint32 VIRTUAL = 1;
const uint32 VOID = 1;
const uint32 VOLATILE = 1;
const uint32 WCHAR_T = 1;
const uint32 WHERE = 1;
const uint32 WHICH = 1;
const uint32 WHILE = 1;
const uint32 WITH = 1;
const uint32 XOR = 1;
const uint32 XOR_EQ = 1;
const uint32 XUNION = 1;
const uint32 YIELD = 1;
const uint32 ZX = 1;
